跳到主要内容

SQL 管理 API 函数介绍

这些主题描述 SQL 管理 API admin() 和 task() 函数。

SQL 管理 API 概述

使用 SQL 管理 API 来通过 SQL 语句远程地管理 GBase 8s 。

SQL 管理 API 由两个函数组成:admin() 和 task()。这些函数执行相同的操作,但返回不同格式的结果。这些函数带有一个或多个定义操作的参数。许多操作是您也可通过命令行命令完成的操作。使用 SQL 管理 API 函数的好处是,您可从其他数据库服务器远程地运行它们;反之,您必须直接地连接到运行命令行命令命令的那台数据库服务器上。

您可在 SQL 语句内调用 admin() 和 task() 函数,该语句可包括表达式,或您可使用 EXECUTE FUNCTION 语句来调用它们。在一个事务内运行 admin() 或 task() 函数,该事务不包括任何其他语句。

在 sysadmin 数据库中定义 SQL 管理 API 函数。您必须连接到 sysadmin 数据库,或直接地或远程地来运行这些函数。

仅下列用户可运行 SQL 管理 API 函数:

  • 用户 gbasedbt
  • root 用户,如果将 sysadmin 数据库上的 Connect 权限授予该用户
  • DBSA 组成员,如果将 sysadmin 数据库上的 Connect 权限授予该角色
  • 通过带有 grant admin 参数的 admin() 和 task() 函数授予 SQL 管理 API 命令权限的用户。

为了复制文件中存在的存储空间、chunk 和日志,您可生成 SQL 管理 API 命令。为此,请运行带有 -c 选项的 dbschema 命令。

admin() 和 task() 函数语法行为

admin() 和 task() 函数带有一个或多个参数,是以逗号分隔的引用字符串。

admin() 和 task() 函数的语法包括下列规则:

  • 每一参数必须用一对单引号(')或双引号(")界定。

  • 必须用逗号分隔参数。

  • 参数的最大数目是 28。

  • 大多数参数不区分大小写,只有下列例外:

    • 紧跟在初始 onmode 参数后的参数区分大小写。例如:EXECUTE FUNCTION task("onmode","D","50");
    • 包括 cdr 参数的参数区分大小写。例如:EXECUTE FUNCTION task("cdr define server","-c=g_amsterdam","--init g_amsterdam");
  • 如果您未直接地连接到 sysadmin 数据库,则必须包括 sysadmin 数据库名和服务器名,根据标准“数据库对象名称”语法。例如,如果服务器名是 ids_server,则您可运行下列语句:

EXECUTE FUNCTION sysadmin@ids_server:admin("add bufferpool","2","50000","8","60.0","50.0");

admin() 和 task() 参数大小规范

缺省情况下,在 admin() 和 task() 函数中指定参数大小的单位是 KB。您可指定其他单位。

您可使用下列 admin() 和 task() 函数参数大小的单位:

记号: 相当的单位

B : 字节

K : KB(缺省)

M : MB

G : GB

T : TB

P : PB

忽略这些字符的字母大小写。

忽略在同一参数中分隔大小规范和单位缩写的空格。例如,规范 "128M" 与 "128 m"都解释为 128 MB。

当省略大小参数时,或者根据配置参数的设置,如未设置参数则或者根据系统缺省大小,应用对象的缺省大小。例如,存储空间有 100 MB 的缺省大小。

admin() 和 task() 函数返回代码

admin() 和 task() 函数执行相同的任务,但产生不同的返回代码类型。如果您想要一个整数返回代码,则使用 admin() 函数,或者如果您想要一个文本的返回代码,则使用 task() 函数。

当您运行 admin() 或 task() 函数时,函数:

  • 执行指定的操作。
  • 返回一个表示函数成功还是失败的值。
  • 在 sysadmin 数据库的 command_history 表内插入一行。

admin() 和 task() 函数的返回代码以不同的格式表明函数是成功了还是失败了:

  • task() 函数返回一个文本的消息。该消息也插入到 task() 函数插入到 command_history 表内那个新行中的 cmd_ret_msg 列。
  • admin() 函数返回一个整数。这个数也插入到 admin() 函数插入到 command_history 表内那个新行中的 cmd_ret_msg 列。
    • 如果这个值大于零,则函数成功,且在 command_history 表内插入一新行。
    • 如果这个值是零,则函数成功,但是 GBase 8s 可能不在 command_history 表内插入一新行。
    • 如果这个值小于零,则函数失败,但是在 command_history 表内插入一新行。

admin() 或 task() 函数指定的操作发生在一个单独的事务中,与在 command_history 表内插入新行的事务分开。如果成功地执行命令,但是在 command_history 表内插入失败,则命令生效,但是一个 online.log 错误条目指明该问题。

当调用这个函数时,如果 command_history.cmd_number 连续计数器是 200,且命令成功,则 GBase 8s 执行命令并返回整数 201。如果命令失败,则这个示例返回值 -201。

假定 task() 函数执行了同一命令:

EXECUTE FUNCTION task("check extents");

这个命令指导数据库服务器检查 extent,并返回指定命令成功或失败的消息。

当调用这个函数时,如果 command_history.cmd_number 连续计数器是 201,且命令失败,则返回值是 -202。假定 DBSA 调用的下一个 SQL 管理 API 函数是这个:

EXECUTE FUNCTION admin('create dbspace',
'dbspace2', '/work/CHUNKS/dbspace2', "20M");

如果在这种情况下命令成功,则返回的值是 203。DBSA 可使用下列查询来检查这些调用 admin() 函数插入 command_history 表的两行:

SELECT * FROM command_history WHERE cmd_number IN (202,203);

这个查询返回两行:

SQL 管理 API 门户:按权限组划分参数

您可查看 admin() 和 task() 函数参数的列表,按照权限组排序,带有指向有关参数信息的链接。

权限组标识用户可运行哪些 SQL 管理 API 命令。有些函数参数在多个权限组中。将权限组授予用户,以便他们为了工作需要可运行这些命令。缺省情况下,仅用户 gbasedbt 或 DBSA 可运行 SQL 管理 API 命令。

使用 grant admin 参数来授予权限,以及 revoke admin 参数来撤销权限。

  • ADMIN:用户可运行所有 SQL 管理 API 函数。
  • BAR 权限组:用户可运行备份和恢复函数。
  • FILE 权限组:用户可管理消息日志并显示文件信息。
  • GRANT 权限组:用户有权限授予和撤销权限。
  • HA 权限组:用户可运行高可用性函数。
  • MISC 权限组:用户可管理数据库服务器。
  • MONITOR 权限组:用户可运行仅显示信息的所有 SQL 管理 API 函数。
  • OPERATOR:用户可运行所有 SQL 管理 API 函数,除了 GRANT 权限组中的函数。
  • REPLICATION 权限组:用户可运行 Enterprise Replication cdr 命令函数。
  • SQL 权限组:用户可运行与管理数据库的 SQL 语句有关的函数。
  • SQLTRACE 权限组:用户可运行 SQL 跟踪函数。
  • STORAGE 权限组:用户可运行与空间相关的函数。
  • TENANT 权限组:用户可运行 tenant 数据库功能。

BAR 权限组

BAR 权限组包括备份数据库的 SQL 管理 API 函数参数。

表. 备份和恢复admin() 和 task() 函数参数

参数
archive fake 参数:执行无记录的备份(SQL 管理 API)
ontape archive 参数:备份数据库上的数据(SQL 管理 API)
onbar 参数:备份存储空间(SQL 管理 API)
onsmsync 参数:与存储管理器目录同步(SQL 管理 API)

FILE 权限组

FILE 权限组包括管理消息日志和显示文件信息的 SQL 管理 API 函数参数。

表. 消息日志命令的 admin() 和 task() 函数参数

参数
file status 参数:显示消息日志文件的状态(SQL 管理 API)
message log rotate 参数:轮换消息日志文件(SQL 管理 API)
message log delete 参数:删除消息日志文件(SQL 管理 API)
message log truncate 参数:删除消息日志文件的内容(SQL 管理 API)
print file info 参数:显示目录或文件信息(SQL 管理 API)

GRANT 权限组

GRANT 权限组包括将运行 SQL 管理 API 命令的权限授予其他用户或撤销的 SQL 管理 API 函数参数。

表. 授予和撤销权限的 admin() 和 task() 函数参数

参数
grant admin 参数:授予运行 SQL 管理 API 命令的权限
revoke admin 参数:撤销运行 SQL 管理 API 命令的权限

HA 权限组

HA 权限组包括管理高可用性集群的 SQL 管理 API 函数参数。

表. 高可用性集群命令的 admin() 和 task() 函数参数

参数
ha make primary 参数:更改辅助服务器的模式(SQL 管理 API)
ha rss 参数:创建 RHAC 辅助服务器(SQL 管理 API)
ha rss add 参数:将 RHAC 辅助服务器添加到主服务器(SQL 管理 API)
ha rss change 参数:更改 RHAC 辅助服务器的口令(SQL 管理 API)
ha rss delete 参数:删除 RHAC 辅助服务器(SQL 管理 API)
ha sds clear 参数:停止共享磁盘复制(SQL 管理 API)
ha sds primary 参数:将 SSC 辅助服务器转换到主服务器(SQL 管理 API)
ha sds set 参数:创建共享磁盘主服务器(SQL 管理 API)
ha set idxauto 参数:复制索引到辅助服务器(SQL 管理 API)
ha set ipl 参数:在主服务器上构建日志索引(SQL 管理 API)
ha set primary 参数:定义 HAC 主服务器(SQL 管理 API)
ha set secondary 参数:定义 HAC 辅助服务器(SQL 管理 API)
ha set standard 参数:将 HAC 服务器转换成为标准服务器(SQL 管理 API)
ha set timeout 参数:更改 SSC 辅助服务器超时(SQL 管理 API)
onmode 和 d 参数:设置数据复制类型(SQL 管理 API)

MISC 权限组

MISC 权限组包括管理数据库服务器的 SQL 管理函数参数:

  • onstat
  • 配置参数
  • 数据、分区和 extent
  • 监听线程
  • 消息日志
  • 内存
  • PDQ
  • 服务器模式
  • SQL 语句高速缓存
  • 其他管理任务

onstat

通过运行 onstat 命令监视数据库服务器的 SQL 管理 API 函数参数。

表. onstat 命令的 admin() 和 task() 函数参数

参数
onstat 参数:监视数据库服务器(SQL 管理 API)

配置参数

更新配置参数的 SQL 管理 API 函数参数。

表. 配置参数命令的 admin() 和 task() 函数参数

参数
export config 参数:导出配置参数值(SQL 管理 API)
import config 参数:导入配置参数值(SQL 管理 API)
modify config 参数:更改配置参数(SQL 管理 API)
onmode 和 wf 参数:永久地更新配置参数(SQL 管理 API)
onmode 和 wm 参数:临时地更新配置参数(SQL 管理 API)
onmode、wm 和 AUTO_LRU_TUNING 参数:更改 LRU 调整状态(SQL 管理 API)
reset config 参数:恢复配置参数值(SQL 管理 API)
reset config all 参数:恢复所有动态地可更新的配置参数值
set onconfig memory 参数:临时地更改配置参数(SQL 管理 API)
set onconfig permanent 参数:永久地更改配置参数(SQL 管理 API)

数据、分区和 extent

管理数据、分区和 extent 的 SQL 管理 API 函数参数。

表. 数据、分区和 extent 命令的 admin() 和 task() 函数参数

参数
check data 参数:检查数据一致性(SQL 管理 API)
check extents 参数:检查 extent 一致性(SQL 管理 API)
check partition 参数:检查分区一致性(SQL 管理 API)
checkpoint 参数:强制一检查点(SQL 管理 API)
create dbaccessdemo 参数:创建演示数据库(SQL 管理 API)
onmode 和 C 参数:控制 B-tree 扫描程序(SQL 管理 API)
onmode 和 c 参数:强制检查点(SQL 管理 API)
print partition 参数:打印分区信息(SQL 管理 API)
set dataskip 参数:启动或停止跳过 dbspace(SQL 管理 API)
set index compression 参数:更改索引页压缩(SQL 管理 API)

监听线程

不中断现有的连接而控制 SOCTCP 或 TLITCP 网络连接协议监听线程的 SQL 管理 API 函数参数。

表. 监听线程命令的 admin() 和 task() 函数参数

参数
restart listen 参数:动态地停止并启动监听线程(SQL 管理 API)
start listen 参数:动态地启动监听线程(SQL 管理 API)
stop listen 参数:动态地停止监听线程(SQL 管理 API)

消息日志

管理消息日志的 SQL 管理 API 函数参数。

表. 消息日志命令的 admin() 和 task() 函数参数

参数
file status 参数:显示消息日志文件的状态(SQL 管理 API)
message log rotate 参数:轮换消息日志文件(SQL 管理 API)
message log delete 参数:删除消息日志文件(SQL 管理 API)
message log truncate 参数:删除消息日志文件的内容(SQL 管理 API)

内存

管理内存的 SQL 管理 API 函数参数。

表. 内存命令的 admin() 和 task() 函数参数

参数
add bufferpool 参数:添加缓冲池(SQL 管理 API)
add memory 参数:增加共享内存(SQL 管理 API)
onmode 和 a 参数:添加共享内存段(SQL 管理 API)
onmode 和 F 参数:释放不用的内存段(SQL 管理 API)
onmode 和 n 参数:解锁驻留内存(SQL 管理 API)
onmode 和 r 参数:强制共享内存的驻留(SQL 管理 API)
scheduler lmm enable 参数:指定自动的低内存管理设置(SQL 管理 API)
scheduler lmm disable 参数:停止自动的低内存管理(SQL 管理 API)

PDQ

管理 PDQ 的 SQL 管理 API 函数参数。

表. PDQ 命令的 admin() 和 task() 函数参数

参数
onmode 和 D 参数:设置 PDQ 优先级(SQL 管理 API)
onmode 和 M 参数:临时地更改决策支持内存(SQL 管理 API)
onmode 和 Q 参数:设置决策支持查询的最大数目(SQL 管理 API)
onmode 和 S 参数:设置决策支持扫描的最大数目(SQL 管理 API)

服务器模式

更改服务器模式的 SQL 管理 API 函数参数。

表. 服务器模式命令的 admin() 和 task() 函数参数

参数
onmode 和 j 参数:切换数据库服务器到管理员模式(SQL 管理 API)
onmode 和 m 参数:切换到多用户模式(SQL 管理 API)

SQL 语句高速缓存

管理 SQL 语句高速缓存的 SQL 管理 API 函数参数。

表. SQL 语句高速缓存命令的 admin() 和 task() 函数参数

参数
onmode 和 e 参数:更改 SQL 语句高速缓存的用法(SQL 管理 API)
onmode 和 W 参数:重置语句高速缓存属性(SQL 管理 API)

其他管理任务

管理其他管理任务的 SQL 管理 API 函数参数。

表. 其他管理任务命令的 admin() 和 task() 函数参数

参数
alter logmode 参数:更改数据库日志记录模式(SQL 管理 API)
create dbaccessdemo 参数:创建演示数据库(SQL 管理 API)
onmode 和 e 参数:更改 SQL 语句高速缓存的用法(SQL 管理 API)
onmode 和 l 参数:切换到下一个逻辑日志(SQL 管理 API)
onmode 和 p 参数:添加或移除虚拟处理器(SQL 管理 API)
onmode 和 Y 参数:更改会话的查询计划度量(SQL 管理 API)
onmode 和 z 参数:终止用户会话(SQL 管理 API)
onmode 和 Z 参数:终止分布式事务(SQL 管理 API)
print error 参数:打印错误消息(SQL 管理 API)
reset sysadmin 参数:移动 sysadmin 数据库(SQL 管理 API)
scheduler 参数:停止或启动调度程序(SQL 管理 API)

MONITOR 权限组

MONITOR 权限组包括监视消息日志、Enterprise Replication 和压缩估算的 SQL 管理函数参数。

表. 监视消息日志、Enterprise Replication 或压缩估算的 admin() 和 task() 函数参数

参数
cdr error、cdr finderr、cdr list repair、cdr list replicate、cdr list replicateset、cdr list server、cdr list template、cdr stats recv 和 cdr stats rqm 参数
cdr 参数:管理 Enterprise Replication(SQL 管理 API)
file status 参数:显示消息日志文件的状态(SQL 管理 API)
index estimate_compression 参数:估计索引压缩(SQL 管理 API)
print error 参数:打印错误消息(SQL 管理 API)
onstat 参数:监视数据库服务器(SQL 管理 API)
table estimate_compression 和 fragment estimate_compression 参数
table 或 fragment 参数:压缩数据和优化存储(SQL 管理 API)

REPLICATION 权限组

REPLICATION 权限组包括管理 Enterprise Replication 的 SQL 管理 API 函数参数。

表. Enterprise Replication 命令的 admin() 和 task() 函数参数

参数
cdr 参数:管理 Enterprise Replication(SQL 管理 API)

SQL 权限组

SQL 权限组包括创建和删除数据库以及查看错误消息的 SQL 管理 API 函数参数。

表. 数据库和错误消息的 admin() 和 task() 函数参数

参数
create database 参数:创建数据库(SQL 管理 API)
create dbaccessdemo 参数:创建演示数据库(SQL 管理 API)
drop database 参数:删除数据库(SQL 管理 API)
print error 参数:打印错误消息(SQL 管理 API)

SQLTRACE 权限组

SQLTRACE 权限组包括管理 SQL 跟踪的 SQL 管理 API 函数参数。

表. SQL 跟踪命令的 admin() 和 task() 函数参数

参数
set sql tracing 参数:设置全局 SQL 跟踪(SQL 管理 API)
set sql tracing database 参数:更改数据库跟踪(SQL 管理 API)
set sql tracing session 参数:控制对会话的跟踪(SQL 管理 API)
set sql tracing user 参数:控制对用户的跟踪(SQL 管理 API)
set sql user tracing 参数:设置对用户会话的全局 SQL 跟踪(SQL 管理 API)

STORAGE 权限组

STORAGE 权限组包括管理存储的下列方面的 SQL 管理 API 函数参数:

  • 自动表存储位置参数
  • 压缩
  • 逻辑和物理日志
  • 镜像
  • 存储空间
  • 存储供应

自动表存储位置参数

管理存储自动分配分片的 dbspace 列表的 SQL 管理 API 函数参数。

表. 表存储命令的 admin() 和 task() 函数参数

参数
autolocate database add 参数:添加 dbspace 到 dbspace 列表(SQL 管理 API)
autolocate database anywhere 参数:添加所有 dbspace 到 dbspace 列表(SQL 管理 API)
autolocate database 参数:指定自动定位和分片的 dbspace(SQL 管理 API)
autolocate database off 参数:禁用数据库的自动分片(SQL 管理 API)
autolocate database remove 参数:从 dbspace 列表中移除 dbspace(SQL 管理 API)

压缩

管理数据压缩并优化存储的 SQL 管理 API 函数参数。

表. 压缩命令的 admin() 和 task() 函数参数

参数
index compress repack shrink 参数:优化 B-tree 索引的存储(SQL 管理 API)
index estimate_compression 参数:估计索引压缩(SQL 管理 API)
table 或 fragment 参数:压缩数据和优化存储(SQL 管理 API)
清除压缩字典参数:移除压缩字典(SQL 管理 API)

逻辑和物理日志

管理逻辑和物理日志的 SQL 管理 API 函数参数。

表. 日志命令的 admin() 和 task() 函数参数

参数
add log 参数:添加新逻辑日志(SQL 管理 API)
alter logmode 参数:更改数据库日志记录模式(SQL 管理 API)
alter plog 参数:更改物理日志(SQL 管理 API)
drop log 参数:删除逻辑日志(SQL 管理 API)

镜像

管理镜像的 SQL 管理 API 函数参数。

表. 镜像命令的 admin() 和 task() 函数参数

参数
add mirror 参数:添加镜像 chunk(SQL 管理 API)
start mirroring 参数:启动存储空间镜像(SQL 管理 API)
stop mirroring 参数:停止存储空间镜像(SQL 管理 API)

存储空间

管理 chunk、blobspace、dbspace 和 sbspace 的 SQL 管理 API 函数参数。

表. 空间命令的 admin() 和 task() 函数参数

参数
add chunk 参数:添加新 chunk(SQL 管理 API)
alter chunk 参数:更改 chunk 状态为 online 或 offline(SQL 管理 API)
clean sbspace 参数:释放未引用的智能大对象(SQL 管理 API)
create blobspace 参数:创建 blobspace(SQL 管理 API)
create chunk 参数:创建 chunk(SQL 管理 API)
create dbaccessdemo 参数:创建演示数据库(SQL 管理 API)
create dbspace 参数:创建 dbspace(SQL 管理 API)
create sbspace 参数:创建 sbspace(SQL 管理 API)
create sbspace with accesstime 参数:创建跟踪访问时间的 sbspace(SQL 管理 API)
create sbspace with log 参数:创建带有事务日志记录的 sbspace(SQL 管理 API)
create tempdbspace 参数:创建临时 dbspace(SQL 管理 API)
create tempsbspace 参数:创建临时 sbspace(SQL 管理 API)
drop blobspace 参数:删除 blobspace(SQL 管理 API)
drop chunk 参数:删除 chunk(SQL 管理 API)
drop dbspace 参数:删除 dbspace(SQL 管理 API)
drop sbspace 参数:删除 sbspace(SQL 管理 API)
drop tempdbspace 参数:删除临时 dbspace(SQL 管理 API)
onmode 和 O 参数:标记禁用的 dbspace 为 down(SQL 管理 API)
print error 参数:打印错误消息(SQL 管理 API)
rename space 参数:重命名存储空间(SQL 管理 API)
set chunk 参数:更改 chunk 的状态(SQL 管理 API)
set sbspace accesstime 参数:控制访问次数跟踪(SQL 管理 API)
set sbspace avg_lo_size 参数:设置智能大对象的平均大小(SQL 管理 API)
set sbspace logging 参数:更改 sbspace 的日志记录(SQL 管理 API)

存储供应

管理来自存储池的 chunk、blobspace、dbspace 和 sbspace 的 SQL 管理 API 函数参数。

表. 存储供应空间命令的 admin() 和 task() 函数参数

参数
create blobspace from storagepool 参数:从存储池创建 blobspace(SQL 管理 API)
create chunk from storagepool 参数:从存储池创建 chunk(SQL 管理 API)
create dbspace from storagepool 参数:从存储池创建 dbspace(SQL 管理 API)
create plogspace 参数:创建 plogspace(SQL 管理 API)
create sbspace from storagepool 参数:从存储池创建 sbspace(SQL 管理 API)
create tempdbspace 参数:创建临时 dbspace(SQL 管理 API)
create tempdbspace from storagepool 参数:从存储池创建临时 dbspace(SQL 管理 API)
drop blobspace to storagepool 参数:从空 blobspace 归还空间到存储池(SQL 管理 API)
drop chunk to storagepool 参数:从空 chunk 归还空间到存储池(SQL 管理 API)
drop dbspace to storagepool 参数:从空 dbspace 归还空间到存储池(SQL 管理 API)
drop plogspace 参数:删除 plogspace(SQL 管理 API)
drop sbspace to storagepool 参数:从空 sbspace 归还空间到存储池(SQL 管理 API)
drop tempsbspace to storagepool 参数:从空的临时 sbspace 归还空间到存储池(SQL 管理 API)
modify chunk extend 参数:扩展 chunk 的大小(SQL 管理 API)
modify chunk extendable off 参数:标记 chunk 为不可扩展的(SQL 管理 API)
modify chunk extendable 参数:标记 chunk 为可扩展的(SQL 管理 API)
modify space expand 参数:扩大空间的大小(SQL 管理 API)
modify space sp_sizes 参数:更改可扩展的存储空间的大小(SQL 管理 API)
storagepool add 参数:添加存储池条目(SQL 管理 API)
storagepool modify 参数:更改存储池条目(SQL 管理 API)
storagepool delete 参数:删除一个存储池条目(SQL 管理 API)
storagepool purge 参数:删除存储池条目(SQL 管理 API)

TENANT 权限组

TENANT 权限组包括管理 tenant 数据库的 SQL 管理 API 函数参数。

表. tenant 数据库命令的 admin() 和 task() 函数参数

参数
tenant create 参数:创建 tenant 数据库(SQL 管理 API)
tenant drop 参数:删除 tenant 数据库(SQL 管理 API)
tenant update 参数:更改 tenant 数据库属性(SQL 管理 API)

add bufferpool 参数:添加缓冲池(SQL 管理 API)

随同 admin() 或 task() 函数,使用 add bufferpool 参数来创建缓冲池。

语法

元素描述关键考虑
page_size以 KB 为单位的页大小。页大小必须是一个缺省页大小的整数倍,且不可大于 16 KB。

用法

使用 add bufferpool 参数来为已经没有缓冲池的页大小创建一个缓冲池。您创建的缓冲池的所有其他特性都设置为 BUFFERPOOL 配置参数缺省行中那些域的值。

这个函数等同于 onparams -b -g 命令和 BUFFERPOOL 配置参数。

示例

下列示例添加一个页大小为 8 KB 的缓冲池:

EXECUTE FUNCTION task("add bufferpool","8");

add chunk 参数:添加新 chunk(SQL 管理 API)

随同 admin() 或 task() 函数,使用 add chunk 参数来添加 chunk 到 dbspace 或 blobspace。

语法

元素描述关键考虑
disk_size要添加的以 KB 为单位的磁盘空间量请参阅 admin() 和 task() 参数大小规范
mirror_offset镜像 chunk 的位置。
mirror_path到镜像 chunk 的路径。如果您正在添加 chunk 到镜像的存储空间,则还必须添加镜像 chunk。
offset新 chunk 的位置。
path_name添加的磁盘空间的路径。
space_name您正在添加磁盘空间到其上的 dbspace、blobspace 或 sbspace 的名称。

用法

chunk 的大小必须等于或大于 1000 KB 且是页大小的倍数。起始偏移量加上 chunk 大小不可超过最大 chunk 大小。最大偏移量是 4 TB。

这个函数等同于 onspaces -a 命令。

示例

下列示例在 5200 KB 偏移量处,添加 5 MB 裸磁盘空间的 chunk 到一名为 dbspc3 的 dbspace:

EXECUTE FUNCTION task("add chunk", "dbspc3","\\.\e:","5120","5200");

下列示例添加 10 MB 镜像 chunk 到名为 blobsp3 的 blobspace,主 chunk 和镜像 chunk 的偏移量都是 200 KB:

EXECUTE FUNCTION task("add chunk","blobsp3","/dev/raw_dev1","10240",
"200","/dev/raw_dev2","200");

add log 参数:添加新逻辑日志(SQL 管理 API)

随同 admin() 或 task() 函数,使用 add log 参数来添加逻辑日志到 dbspace。

语法

元素描述关键考虑
after_current_flag是在当前日志之后还是在最后的逻辑日志之后(缺省)添加新日志。可能的值是:
● 1 = 在当期日志之后添加新日志。
● 0 = 在最后的日志之后添加新日志。
count要创建的日志文件数。缺省是 1。该数目必须不导致逻辑日志文件的总数目超过 32,767。
dbspace要将逻辑日志文件插入其中的那个 dbspace 的名称。仅当数据库服务器有足够的连续空间时,您才可添加日志文件到 dbspace。
您可在备份期间添加日志文件。
您不可添加日志文件到 blobspace 或 sbspace。
size以 KB 为单位的新逻辑日志文件的大小。缺省是由 LOGSIZE 配置参数指定的大小。这个值必须是一个大于或等于 200 KB 的无符号整数。
还请参阅 admin() 和 task() 参数大小规范

用法

新添加的日志文件有状态 A 且立即可用。使用 onstat -l 来查看逻辑日志文件的状态。运行这个函数之后,请尽快对包含该日志文件的 root dbspace 和 dbspace 进行 0 级备份。

缺省情况下,新日志文件被添加在最后的逻辑日志之后。请包括 1 作为第五个参数来将逻辑日志文件添加在当前日志文件之后。

这个函数类似于 onparams -a -d 命令,可添加单个的逻辑日志文件。然而,您可调用这个函数一次,添加多个逻辑日志文件到指定的 dbspace。

示例

下列示例中的命令在当前日志之后添加三个逻辑日志,每一个的大小都是 5 MB:

EXECUTE FUNCTION task ("add log","logdbs","5M",3,1);

add memory 参数:增加共享内存(SQL 管理 API)

随同 admin() 或 task() 函数,使用 add memory 参数来添加共享内存的虚拟部分。

语法

元素描述关键考虑
memory_size以 KB 为单位的新虚拟共享内存段的大小。这个值必须不超过操作系统对共享内存段大小的限制

用法

这个大小预置 SHMADD 配置参数。

这个函数等同于 onmode -a 命令。

示例

下列示例添加 500 KB 虚拟共享内存:

EXECUTE FUNCTION task("add memory","500");

add mirror 参数:添加镜像 chunk(SQL 管理 API)

随同 admin() 或 task() 函数,使用 add mirror 参数来添加镜像 chunk 到 dbspace。

语法

元素描述关键考虑
mirror_path执行镜像的 dbspace、blobspace 或 sbspace 的初始 chunk 的磁盘分区或无缓冲的设备。
mirror_offset达到新镜像 dbspace、blobspace 或 sbspace 的镜像 chunk 的偏移量。请参阅 admin() 和 task() 参数大小规范
offset磁盘分区内或无缓冲的设备内,以 KB 为单位的达到新镜像 dbspace、blobspace 或 sbspace 的初始 chunk 的偏移量。请参阅admin() 和 task() 参数大小规范
path_name您想要镜像的 dbspace、blobspace 或 sbspace 的初始 chunk 的磁盘分区或无缓冲的设备。
space_name要镜像的 dbspace、blobspace 或 sbspace 的名称。

用法

这个函数等同于 onspaces -m 命令。

示例

下列示例添加镜像 chunk 到名为 blobsp3 的 blobspace:

EXECUTE FUNCTION task("add mirror","blobsp3","/dev/raw_dev1",
"10240","/dev/raw_dev2","200");

alter chunk 参数:更改 chunk 状态为 online 或 offline(SQL 管理 API)

随同 admin() 或 task() 函数,使用 alter chunk 参数在 dbspace、blobspace 或 sbspace 中使 chunk 为 online 或使 chunk 为 offline。

语法

元素描述关键考虑
space_nameblobspace、dbspace 或 sbspace 的名称。
path_namechunk 的磁盘分区或无缓冲设备。
offset磁盘分区或无缓冲设备内达到 chunk 的偏移量(以 KB 为单位)。缺省是 0。请参阅 admin() 和 task() 参数大小规范

用法

chunk 必须在镜像对中,或非关键 dbspace 内的非主 chunk。

使用 alter chunk online 参数来更改 chunk 状态为 online。

使用 alter chunk offline 参数来更改 chunk 状态为 offline。

这个函数等同于 onspaces -s 命令。

示例

下列示例使名为 dbspace4 的 chunk 为 online:

EXECUTE FUNCTION task("alter chunk online","dbspace4","/dev/raw_dev1","0");

alter logmode 参数:更改数据库日志记录模式(SQL 管理 API)

随同 admin() 或 task() 函数,使用 alter logmode 参数来更改数据库日志记录模式为 ANSI、缓冲的、无日志记录或无缓冲的。

语法

元素描述关键考虑
database_name您想要改变其日志记录模式的数据库的名称。

用法

与通过 ondblog 或 ontape 命令更改数据库日志记录模式时不同,当您使用这个函数时,数据库保持可访问,通常不需要进行 0 级备份。在运行这个函数或函数失败之前,请确保没有其他会话是活动的。

使用 "a" 参数来更改数据库日志记录为符合 ANSI。创建或转换数据库为 ANSI 模式之后,您不可将它更改回其他日志记录模式的任何一种。

使用 "b" 参数来更改数据库日志记录为缓冲的,以便在事务信息写到逻辑日志之前,写到缓冲区。

使用 "n" 参数来更改数据库日志记录为无日志记录,以便不记录数据库事务日志。您必须在使用这个参数之前执行 0 级备份。

使用 "u" 参数来更改数据库日志记录为无缓冲的,以便在数据写到逻辑日志之前,不写到缓冲区。

示例

系列示例更改名为 employee 的数据库的日志记录模式为无缓冲的日志记录:

EXECUTE FUNCTION task("alter logmode","employee","u");

alter plog 参数:更改物理日志(SQL 管理 API)

随同 admin() 或 task() 函数,使用 alter plog 参数来更改物理日志的位置和大小。

语法

元素描述关键考虑
dbspace物理日志的位置。为物理日志分配的空间必须是连续的。
phys_log_size物理日志的大小,以 KB 指定。请参阅 admin() 和 task() 参数大小规范

用法

要仅更改大小,请指定物理日志的当前 dbspace。

这个函数等同于 onparams -p 命令。

示例

下列示例将物理日志移动到名为 phsdbs 的 dbspace:

EXECUTE FUNCTION task ("alter plog","physdbs","49 M");

archive fake 参数:执行无记录的备份(SQL 管理 API)

随同 admin() 或 task() 函数,使用 archive fake 参数来执行备份操作,克隆服务器中的数据而不创建一个可用于执行恢复的持续备份。

语法

用法

使用这个函数来填入“高可用性数据复制”对中的辅助服务器。

这个函数等同于运行带有 -F 选项的 ontape 命令。

示例

下列示例启动无记录的备份:

EXECUTE FUNCTION task("archive fake");

autolocate database add 参数:添加 dbspace 到 dbspace 列表(SQL 管理 API)

随同 admin() 或 task() 函数,使用 autolocate database add 参数来添加 dbspace 到可用的 dbspace 列表,用于指定数据库的表的自动定位和分片。

语法

元素描述关键考虑
database_name数据库的名称
dbspace要添加到 dbspace 名称列表的 dbspace 的名称,在这些 dbsapce 中数据库服务器可自动地创建分片。dbspace 必须存在。

用法

AUTOLOCATE 配置参数或会话环境变量必须设置为一个正整数。

可用 dbspace 的列表存储在 sysautolocate 系统目录表中。

示例

下列命令添加 dbspace dbspace9 到可用 dbspace 的列表,用于在 customer 数据库中的表的自动定位和分片。

EXECUTE FUNCTION task("autolocate database add", "customer", "dbspace9");

autolocate database anywhere 参数:添加所有 dbspace 到 dbspace 列表(SQL 管理 API)

随同 admin() 或 task() 函数,使用 autolocate database anywhere 参数来指定数据库服务器可使用任何非关键 dbspace,用于指定数据库的表的自动定位和分片。

语法

元素描述关键考虑
database_name数据库的名称不可是 tenant 数据库的名称。

用法

这个命令以一个所有可用 dbspace 的列表取代任何之前的 dbspace 列表。用于 tenant 数据库的 dbspace 不可用。可用 dbspace 的列表存储在 sysautolocate 系统目录表中。

AUTOLOCATE 配置参数或会话环境变量必须设置为一正整数。

示例

下列命令将所有非关键 dbspace 添加到可用 dbspace 的列表,用于 potential_cust 数据库中表的自动定位和分片:

EXECUTE FUNCTION task("autolocate database anywhere", "potential_cust");

autolocate database 参数:指定自动定位和分片的 dbspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 autolocate database 参数来为指定数据库的表的自动定位和分片指定可用 dbspace 的列表。

语法

元素描述关键考虑
database_name数据库的名称不可是 tenant 数据库的名称。
dbspace_list以逗号分隔的 dbspace 名称的列表,数据库服务器可在这些 dbspace 中自动地创建分片。这些 dbspace 必须存在。这些 dbspace 不可专用于 tenant 数据库。

用法

AUTOLOCATE 配置参数或会话环境变量必须设置为正整数。

缺省情况下,所有 dbspace 都可用。可用 dbspace 列表存储在 sysautolocate 系统目录表中。

示例

下列命令限定 customer 数据库中表的自动定位和分片的可用 dbspace 列表:

EXECUTE FUNCTION task("autolocate database", "customer",
"dbspace1,dbspace2,dbspace4,dbspace8");

autolocate database off 参数:禁用数据库的自动分片(SQL 管理 API)

随同 admin() 或 task() 函数,使用 autolocate database off 参数来禁用指定数据库的表的自动定位和分片。

语法

元素描述关键考虑
database_name数据库的名称

用法

您在指定的数据库中创建的新表存储在与数据库相同的 dbspace 中,且不分片。随着表的增长,现有的自动地分片的表不分配新的分片。

示例

下列命令禁用在 customer_old 数据库中的表的自动定位和分片:

EXECUTE FUNCTION task("autolocate database off", "customer_old");

autolocate database remove 参数:从 dbspace 列表中移除 dbspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 autolocate database remove 参数来从可用 dbspace 列表移除 dbspace, 指定的数据库在这些可用 dbspace 内可自动地定位和分片表。

语法

元素描述关键考虑
database_name数据库的名称
dbspace要从 dbspace 名称列表移除的 dbspace 的名称,数据库服务器在这些 dbspace 中可自动地创建分片。该 dbspace 必须存在。

用法

AUTOLOCATE 配置参数或会话环境变量必须设置为正整数。

可用 dbspace 的列表存储在 sysautolocate 系统目录表中。

示例

下列命令从 customer 的可用 dbspace 列表移除 dbspace1。

EXECUTE FUNCTION task("autolocate database remove", "customer", "dbspace1");

cdr 参数:管理 Enterprise Replication(SQL 管理 API)

随同 admin() 或 task() 函数,使用 cdr 参数来管理 Enterprise Replication。

语法

元素描述关键考虑
command_namecdr 命令名。您不可包括任何连字符、标志或包含 cdr 命令行命令要求的 command_name 的其他选项。
option_namecommand_name 的 cdr 命令行选项的一个或多个元素。这些元素必须以引号分隔。还包括(以正确的顺序)任何连字符、标志或 command_name 要求的 cdr 命令行选项的其他元素。您可使用缩写。

用法

使用这些函数产生的管理 Enterprise Replication 的效果与 cdr 命令行命令相同。

该 SQL 管理 API 支持 cdr 命令用于管理 Enterprise Replication。不支持下列监视 Enterprise Replication 的命令:

  • cdr list grid
  • cdr list replicate
  • cdr list replicateset
  • cdr list server
  • cdr list template
  • cdr stats recv
  • cdr stats rqm
  • cdr –V
  • cdr view

第一个参数必须仅包括 cdr 命令名,与 GBase 8s Enterprise Replication 指南 中 cdr 命令附录指定的名称完全一致,比如 cdr define server。命令名区分大小写且不支持缩写(比如 cdr sto replset 而不是 cdr stop replicateset)。在将这些参数传到 cdr 命令之前,该 SQL 管理 API 不执行任何验证。

第二个及任何后续参数包括命令选项。可在一个或最多六个参数中指定这些选项。

下列示例说明使用 SQL 管理 API 来定义 Enterprise Replication 服务器:

EXECUTE FUNCTION task ( 'cdr define server', '--connect=g_amsterdam
--ats=/local0/er/ats --ris=/local0/er/ris --init g_amsterdam' );

下列示例展示这些选项可如何分为几个参数;上面的语句还可写为:

EXECUTE FUNCTION task( 'cdr define server',
'--connect=g_amsterdam',
'--ats=/local0/er/ats',
'--ris=/local0/er/ris',
'--init g_amsterdam' );

下列示例显示一个参数内的双引号字符串:

EXECUTE FUNCTION task('cdr change replicate',
'-d repl_1 -"db1@server1:antonio.table1" "db2@server2:carlo.table2"');

六项参数的最大值。

cdr add trustedhost 参数:添加可信任主机(SQL 管理 API)

随同 admin() 或 task() 函数,使用 cdr add trustedhost 参数来在高可用性集群或 Enterprise Replication 域中添加数据库服务器的可信任主机关系。对于参与高可用性集群或 Enterprise Replication 域的数据库,其主机必须罗列在其他高可用性或复制服务器的可信任主机文件中。

语法

元素描述关键考虑
localhost_name数据库服务器的 localhost 名称。
fully_qualified_domain_name数据库服务器的完全域名称。
user_name在指定主机有数据库服务器实例授权的用户账户。

用法

随同 admin() 或 task() 函数的 cdr add trustedhost 参数添加值到数据库服务器的 REMOTE_SERVER_CFG 配置参数指定的文件。如果数据库服务器是高可用性集群的一部分,则可信任主机信息还传播到其他集群服务器的可信任主机文件。可信任主机值指定 GBase_8s shard 集群中其他数据库服务器的 localhost 名或完全限定的域名称。为了添加的安全性,您可指定与特定主机相关的用户名。

如果未设置 REMOTE_SERVER_CFG 配置参数,且您运行带有 cdr add trustedhost 参数的 SQL 管理 API task() 或 admin() 函数,则数据库服务器执行下列活动:

  • REMOTE_SERVER_CFG 配置参数设置为 authfile.DBSERVER。
  • 在 $GBASEDBTDIR/etc 中创建 authfile.DBSERVER 文件。
  • 将指定的可信任主机信息添加到 $GBASEDBTDIR/etc/authfile.DBSERVER。

如果您在高可用性集群中的服务器上运行带有 cdr add trustedhost 参数的 admin() 或 task() 函数,则将可信任主机信息添加到集群中所有数据库服务器的可信任主机文件。

您必须是“数据库服务器管理员”(DBSA)来运行带有 cdr add trustedhost 参数的 admin() 或 task() 函数。

要参阅可信任主机文件中的条目,请运行带有 cdr list trustedhost 参数的 admin() 或 task() 函数。

示例 1:添加可信任主机值到可信任主机文件

下列命令添加六个可信任主机值到数据库服务器 REMOTE_SERVER_CFG 配置参数指定的文件:

EXECUTE FUNCTION task("cdr add trustedhost","myhost1, myhost1.gbase.com,
myhost2, myhost2.gbase.com, myhost3, myhost3.gbase.com");

该任务为三个数据库服务器指定 localhost 名称和完全限定的域名称。

示例 2:添加可信任主机和可信任用户值到可信任主机文件

下列命令添加四个可信任主机与用户的组合到数据库服务器 REMOTE_SERVER_CFG 配置参数指定的文件:

EXECUTE FUNCTION task("cdr add trustedhost", "myhost1 gbasedbt,
myhost1.gbase.com gbasedbt, myhost2 user_1, myhost2.gbase.com user_1");

该任务为两个数据库服务器指定 localhost 名称、完全限定的域名称和用户名称。

cdr autoconfig serv 参数:自动配置连接性和复制(SQL 管理 API)

随同 cdr autoconfig serv 参数的 admin() 或 task() 函数可自动配置高可用性集群中服务器的连接性,且可自动配置复制。

语法

Source options

Target options

元素目的约束
host数据库服务器主机的名称
port用于通信的端口号
server要连接到的数据库服务器名该名称必须是数据库服务器或服务器连接的名称。
server_group包括要连接的数据库服务器的数据库服务器组名该名称必须是现有的数据库服务器组名。

下表描述 cdr autoconfig serv 的选项。

长形短形含意
--sourcehost-H正在发送自动配置信息的数据库服务器的主机。如果未指定 --sourcehost 和 --sourceport,则将在其上运行函数的数据库服务器视为源数据库服务器。
--sourceport-P正在发送自动配置信息的数据库服务器使用的端口。
--targethost-h正在接收自动配置信息的数据库服务器主机。
--targetport-p正在接收自动配置信息的数据库服务器使用的端口。

用法

运行带有 cdr autoconfig serv 参数的 admin() 或 task() 函数可自动配置高可用性集群或 Enterprise Replication 域中服务器的连接性,如果您正在添加数据库服务器到 Enterprise Replication 域,则还可自动配置复制。在您可运行带有 cdr autoconfig serv 参数的 admin() 或 task() 函数之前,CDR_AUTO_DISCOVER 配置参数必须在参与 Enterprise Replication 域的所有数据库上设置为 1。通过 cdr autoconfig serv 添加到 Enterprise Replication 域的新安装的数据库服务器必须有一个配置的存储池。

如果已为 Enterprise Replication 配置了源服务器,则函数执行下列活动:

  1. 源服务器将其可信任主机文件传到目的服务器。
  2. 目的服务器为自身和所有其他复制服务器添加条目到其 sqlhosts 文件。
  3. 源服务器以目的服务器的条目更新其 sqlhost 文件。
  4. 每一复制服务器以目的服务器的条目更新其 sqlhost 文件和可信任主机文件。
  5. 目的数据库设置其 CDR_DBSPACE 配置参数并创建 Enterprise Replication 要求的 dbspace。
  6. 目的服务器设置其 CDR_QDATA_SBSPACE 配置参数并创建 Enterprise Replication 要求的 sbspace。
  7. 在目的服务器上创建中止事务 spooling(ATS)文件目录 $GBASEDBTDIR/tmp/ats_dbservername。
  8. 在目的服务器上创建行信息 spooling(RIS)文件目录 $GBASEDBTDIR/tmp/ris_dbservername。
  9. 启动到目的服务器的复制。

如果未为 Enterprise Replication 配置源服务器,则函数执行附加的活动:

  1. 源服务器为自身添加条目到其 sqlhosts 文件。
  2. 源服务器设置其 CDR_DBSPACE 配置参数并创建 Enterprise Replication 要求的 dbspace。
  3. 源服务器设置其 CDR_QDATA_SBSPACE 配置参数并创建 Enterprise Replication 要求的 sbspace。
  4. 在源服务器上创建中止事务 spooling(ATS)文件目录 $GBASEDBTDIR/tmp/ats_dbservername。
  5. 在源服务器上创建行信息 spooling(RIS)文件目录 $GBASEDBTDIR/tmp/ris_dbservername。
  6. 在开始目的服务器上的复制之前,开始源服务器上的复制。

对带有 cdr autoconfig serv 参数的 admin() 或 task() 函数使用下列约束:

  • 所有复制服务器必须是活动的,否则函数失败。
  • 如果您已经手工地配置了可信任主机信息,而不是通过运行带有 cdr add trustedhost 参数的 admin() 或 task() 函数配置的,则请不要运行带有 cdr autoconfig serv 参数的 admin() 或 task() 函数。
  • 如果您的复制服务器有配置的安全端口,则请不要运行带有 cdr autoconfig serv 参数的 admin() 或 task() 函数。
  • 带有 cdr autoconfig serv 参数的 admin() or task() 函数不复制 hosts.equiv 信息到可信任主机文件,该文件由 REMOTE_SERVER_CFG 配置参数设置。如果您必须从 hosts.equiv 文件添加信息到 REMOTE_SERVER_CFG 配置参数设置的可信任主机文件,请运行带有 cdr add trustedhost 参数的 admin() 或 task() 函数。

串行地配置数据库服务器。不支持并行配置。

您可如 cdr utility 命令那样运行这个函数。

示例 1:在本地服务器上配置 Enterprise Replication

对于这个示例,您有一个未为 Enterprise Replication 配置的本地数据库服务器:

在本地服务器上运行下列任务函数:

EXECUTE FUNCTION task('cdr autoconfig server');

该任务函数在本地服务器上配置 Enterprise Replication。

示例 2:通过使用源语法在两独立服务器之间配置连接性和 ER

对于这个示例,您有两数据库服务器:

为 Enterprise Replication 配置 host_1 上的 server_1

为 Enterprise Replication 配置 host_2 上的 server_2

EXECUTE FUNCTION task('cdr autoconfig server', '--connect server_2
--sourcehost host_1 --sourceport 9020');

该任务函数执行下列活动:

该命令连接到 server_2。

在 server_2 上定义 Enterprise Replication。

server_1 复制其数据到 server_2

示例 3:使用目的语法配置两独立服务器之间的连接性和 ER

下列命令

EXECUTE FUNCTION task('cdr autoconfig server', '--connect server_1
-–targethost host_2 --targetport 9030');

该任务函数执行下列活动:

  1. 该命令连接到 server_1。
  2. 在 server_2 上定义 Enterprise Replication。
  3. server_1 复制其数据到 server_2

cdr list trustedhost 参数:罗列可信任主机(SQL 管理 API)

随同 admin() 或 task() 函数,使用 cdr list trustedhost 参数来罗列来自于数据库服务器的 REMOTE_SERVER_CFG 配置参数指定文件的可信任主机信息。

语法

用法

您必须是“数据库服务器管理员”(DBSA)才能运行这个函数。

示例

下列命令罗列来自于数据库服务器的可信任主机文件的可信任主机条目:

EXECUTE FUNCTION task("cdr list trustedhost");

下列示例输出显示使用 cdr list trustedhost 参数可能的结果。

myhost1 user_1
myhost1.example.com user_1
myhost2 user_2
myhost2.example.com user_2

cdr remove trustedhost 参数:移除可信任主机(SQL 管理 API)

随同 admin() 或 task() 函数,使用 cdr remove trustedhost 参数来从数据库服务器的可信任主机文件移除条目。

语法

元素描述关键考虑
localhost_name数据库服务器的 localhost 名称。如果您在该命令中未指定 user_name,则移除包括指定主机名的所有条目。
fully_qualified_domain_name数据库服务器的完全域名称。如果您在该命令中未指定 user_name,则移除包括指定的完全限定的域名称的所有条目。
user_name在指定主机有数据库服务器实例授权的用户账户。

用法

cdr remove trustedhost 参数从数据库服务器 REMOTE_SERVER_CFG 配置参数指定的可信任主机文件移除可信任主机条目。对于参与高可用性集群或 Enterprise Replication 域的数据库,其主机必须罗列在其他高可用性或复制服务器的可信任主机文件中。当您在高可用性集群中的服务器上运行带有 cdr remove trustedhost 参数的 admin() 或 task() 函数时,从所有集群服务器的可信任主机文件移除可信任主机条目。

要参阅可信任主机文件中的条目,请运行带有 cdr list trustedhost 参数的 admin() 或 task() 函数。

您必须是“数据库服务器管理员”(DBSA)才能运行带有 cdr remove trustedhost 参数的 admin() 或 task() 函数。

示例 1:从可信任主机文件移除主机条目

下列命令从数据库服务器 REMOTE_SERVER_CFG 配置参数指定的可信任主机文件移除 localhost 名称值和完全限定的域名称值:

EXECUTE FUNCTION task("cdr remove trustedhost","myhost1, myhost1.gbase.com");

从数据库服务器的可信任主机文件移除 myhost1 和 myhost1.gbase.com 条目。

示例 2:从可信任主机文件移除主机和用户条目

下列命令从数据库服务器 REMOTE_SERVER_CFG 配置参数指定的可信任主机文件移除 localhost 名称值、完全限定的域名称值和用户值:

EXECUTE FUNCTION task("cdr remove trustedhost", "myhost2 john,myhost2.gbase.cn john,myhost3 gbasedbt,myhost3.gbase.cn gbasedbt");

从数据库服务器的可信任主机文件移除用户 john 的 myhost2、用户 john 的 myhost2.gbase.cn、用户 gbasedbt 的 myhost3 和用户 gbasedbt 的 myhost3.gbase.cn。

check data 参数:检查数据一致性(SQL 管理 API)

随同 admin() 或 task() 函数,使用 check data 参数来检查或修理指定分区中所有页的一致性。

语法

元素描述关键考虑
partition_number在其中检查数据的分区号。找到 systables 系统目录表的 partnum 列中的分区号。

用法

使用 check data 参数来读除了 sbpage 之外的所有页,并检查每一页的一致性。这个参数等同于 oncheck -cD 命令。

使用 check data only 参数来读除了 blobpage 和 sbpage 之外的所有页,并检查每一页的一致性。这个参数等同于 oncheck -cd 命令。

使用 check data repair 参数来修理不一致的页。这个参数等同于 oncheck -cD -y 命令。

示例

下列示例检查分区 1048611 中所有页的一致性:

EXECUTE FUNCTION task("check data","1048611");

check extents 参数:检查 extent 一致性(SQL 管理 API)

随同 admin() 或 task() 函数,使用 check extents 参数来验证磁盘上的 extent 与当前的控制信息是否相同。

语法

元素描述关键考虑
dbspace_number要检查的 dbspace 号。

用法

运行这个函数来检查每一空闲 chunk 列表和相应的空闲空间以及每一 tblspace extent。如果您未指定 dbspace 号,则检查所有 dbspace。该功能检查 dbspace、blobspace、智能大对象 extent 和用户数据以及 sbspace chunk 中的元数据信息。

这个函数等同于 oncheck -ce 命令。

示例

下列示例检查 2 号 dbspace 中的 extent:

EXECUTE FUNCTION task("check extents",2);

check partition 参数:检查分区一致性(SQL 管理 API)

随同 admin() 或 task() 函数,使用 check partition 参数来打印表或分片的 tblspace 信息。

语法

元素描述关键考虑
partition_number您想要检查其一致性的分区号。找到 systables 系统目录表的 partnum 列中的分区号。

用法

带有 check partition 参数的 task() 函数返回的信息等同于 oncheck -pt 命令的输出。输出包含通用信息,诸如最大行大小、键号、extent 号及大小、 分配的页及每 extent 使用的页、当前的序列值和创建表的日期。

admin() 函数返回一个整数,可用来找到 sysadmin 数据库中 command_history 表中的信息。

示例

下列示例打印分区 1048611 的信息:

EXECUTE FUNCTION task("check partition","1048611");

checkpoint 参数:强制一检查点(SQL 管理 API)

随同 admin() 或 task() 函数,使用 checkpoint 参数来强制一检查点。

语法

用法

这个函数强制一检查点,经缓冲区清空到磁盘。如果逻辑日志中最近的检查点记录阻止释放逻辑日志文件(状态 U-B-L),则可使用这个函数来强制一检查点。

使用 block 参数来防止数据库服务器处理任何事物。在 GBase 8s 上使用这个选项执行外部备份。在数据库服务器阻塞时,用户不可访问它,除非在只读模式中。直到解除数据库服务器阻塞,事务才可完成。

使用 hard 参数来强制一阻塞检查点。这是缺省情况。

使用 norm 参数来强制一非阻塞检查点。

使用 unblock 参数来解除数据库服务器阻塞。当解除数据库服务器阻塞时,可恢复数据事务和正常的数据库服务器操作。请在 GBase 8s 上完成外部备份之后使用这个选项。

这个函数等同于 onmode -c 命令。

示例

下列示例启用一阻塞检查点:

EXECUTE FUNCTION task("checkpoint","block");

clean sbspace 参数:释放未引用的智能大对象(SQL 管理 API)

随同 admin() 或 task() 函数,使用 clean sbspace 参数来从 sbspace 释放任何未引用的 BLOB 或 CLOB 对象。

语法

元素描述关键考虑
sbspace要清理的 sbspace 的名称。

用法

这个函数等同于 onspaces -cl 命令。

示例

下列示例清理名为 sbsp1 的 sbspace:

EXECUTE FUNCTION task("clean sbspace","sbsp1");

create blobspace 参数:创建 blobspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create blobspace 参数来创建 blobspace。

语法

元素描述关键考虑
blobspace要创建的 blobspace 的名称。
initial_chunk_size新 blobspace 的初始 chunk 的大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
offset达到新 blobspace 的初始 chunk 的磁盘分区内或设备内的偏移量,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
page_sizeblobspace blobpage 大小。在多个缺省 GBase 8s 页大小中,为操作系统指定 blobpage 的大小。
path_name正在创建的 blobspace 的初始 chunk 的磁盘分区或设备。

用法

使用 create with_check blobspace 参数来检查指定的路径名,如果路径不存在,则返回错误。

这个函数等同于 onspaces -c -b 命令。

示例

下列示例创建一 blobspace,大小为 20 MB,偏移量为 0 且 page_size 为 2。

EXECUTE FUNCTION task ("create with_check blobspace","blobs3",
"$GBASEDBTDIR/WORK/blobs3","20 M","0","2");

create blobspace from storagepool 参数:从存储池创建 blobspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create blobspace from storagepool 参数来从存储池中一个条目创建一 blobspace。

语法

元素描述关键考虑
blobspaceblobspace 的名称。blobspace 名称必须是唯一的且不可超过 128 字节。名称以一个字母或下划线开头,且必须仅包含字母、数、下划线或 $ 字符。
blobpage_sizeblobpage 大小,根据 page_unit 指定,每 blobpage 的磁盘页数。页大小是可选的。然而,如果您为 mirroring 指定 1,则还必须指定页大小。
initial_chunk_size新 blobspace 的初始 chunk 的大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
mirroring_flag二者之一: _ 1 = 镜像 _ 0 = 无镜像镜像标志是可选的。

示例

下列命令创建名为 blobspace1 的镜像 blobspace。新 blobspace 的大小为 100 GB,100 页的 blobpage 大小。

EXECUTE FUNCTION task("create blobspace from storagepool", "blobspace1", "100 GB", "100", "1");

下列命令创建一名为 blobspace2 的无镜像 blobspace,采用缺省 blobpage 大小,因此未指定 blobpage 大小:

EXECUTE FUNCTION task("create blobspace from storagepool", "blobspace2", "5000");

create chunk 参数:创建 chunk(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create chunk 参数来在 dbspace 中或在 blobspace 中创建 chunk。

语法

元素描述关键考虑
disk_size要添加的磁盘空间的数量,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
mirror_offset镜像 chunk 的位置。
mirror_path到镜像 chunk 的路径。如果您正在添加 chunk 到镜像的存储空间,则还必须添加镜像 chunk。
offset新 chunk 的位置。
path_name添加的磁盘空间的路径。
space_name您正在添加磁盘空间的 dbspace、blobspace 或 sbspace 的名称。

用法

使用 create with_check chunk 参数来检查指定的路径名,如果路径不存在,则返回错误。

这个函数等同于 onspaces -a 命令。

示例

下列示例添加 5 MB 裸磁盘空间的 chunk 到名为 dbspc3 的 dbspace ,偏移量为 5200 KB:

EXECUTE FUNCTION task("create chunk", "dbspc3","\\.\e:","5120","5200");

下列示例添加 10 MB 镜像 chunk 到名为 blobsp3 的 blobspace,主 chunk 和镜像 chunk 的偏移量都是 200 KB:

EXECUTE FUNCTION task("create with_check chunk","blobsp3","/dev/raw_dev1","10240",
"200","/dev/raw_dev2","200");

create chunk from storagepool 参数:从存储池创建 chunk(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create chunk from storagepool 参数来手工地从存储池中的条目创建 chunk。

语法

元素描述关键考虑
space_name您正在添加 chunk 到其上的存储空间的名称。
initial_chunk_size初始 chunk 的大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范

用法

您还可使用带有 modify space expand 参数的 SQL 管理 API 命令来手工地从存储池创建 chunk,并将该 chunk 添加到指定的存储空间。然而,如果该空间有可扩展的 chunk,则 GBase 8s 可能扩展一 chunk 而不创建一个新的。与 modify space expand 参数不一样,create chunk from storagepool 参数强制 GBase 8s 添加 chunk。

示例

下列命令添加 chunk 到名为 logdbs 的 dbspace。新 chunk 的大小为 200 MB。

EXECUTE FUNCTION task("create chunk from storagepool", "logdbs", "200 MB");

create database 参数:创建数据库(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create database 参数来创建数据库。

语法

元素描述关键考虑
database_name数据库的名称。
dbspace为这个数据库存储数据的 dbspace 的名称。缺省是 root dbspace。该 dbspace 必须在数据库服务器上已存在。
locale与数据库相关的语言环境。locale 的值与 DB_LOCALE 环境变量的值相同。
如果您忽略这个特性, 则以 DB_LOCALE 环境变量的值设置该语言环境。缺省语言环境为 US English。

用法

这个函数等同于 CREATE DATABASE 语句。

您不可使用这个函数来创建 tenant 数据库。请您以 tenant create 参数创建 tenant 数据库。

示例

下列示例创建名为 demodbs 的数据库,带有无缓存的日志记录:

EXECUTE FUNCTION task("create database with log","demodbs");

下列示例在名为 dataspace1 的 dbspace 中创建与大小写无关的名为 demodbs2 的数据库,带有符合 ANSI 的日志记录:

EXECUTE FUNCTION task("create database with log mode ansi nlscase insensitive",
"demodbs2","dataspace1");

create dbaccessdemo 参数:创建演示数据库(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create dbaccessdemo 参数来创建 stores_demo 演示数据库。

语法

元素描述关键考虑
database_name要创建的数据库名称。缺省数据库名是 stores_demo
dbspace要在其中创建数据库的 dbspace 名称。缺省 dbspace 是 root dbspace。

用法

运行这个函数来创建 stores_demo 数据库。

使用 -log 选项来启用演示数据库的事务日志记录。

使用 -nots 选项来防止在演示数据库中创建带时间序列数据的表。

示例

下列命令在 root dbspace 中创建 stores_demo 数据库:

EXECUTE FUNCTION task("create dbaccessdemo");

下列命令在名为 dbs1 的 dbspace 中创建名为 demo2 的演示数据库。:

EXECUTE FUNCTION task("create dbaccessdemo","demo2","dbs1");

下列命令在名为 dbs1 的 dbspace 中创建带有事务日志记录的 stores_demo 数据库:

EXECUTE FUNCTION task("create dbaccessdemo","stores_demo","dbs1","-log");

create dbspace 参数:创建 dbspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create dbspace 参数来创建 dbspace。

语法

元素描述关键考虑
dbspace要创建的 dbspace 名。
first_extsizetblspace tblspace 的第一个 extent 的大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
initial_chunk_size新 dbspace 的初始 chunk 的大小,以 KB 为单位。该大小取整到页大小的倍数。请参阅 admin() 和 task() 参数大小规范
mirror_offset镜像 chunk 的偏移量,以 KB 为单位。
mirror_path对 dbspace 的初始 chunk 镜像的那个 chunk 的路径名。
next_extsizetblspace tblspace 中下一个 extent 的大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
offset磁盘分区内或设备内达到新 dbspace 的初始 chunk 的偏移量,以 KB 为单位。
page_size新 dbspace 的非缺省页大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
path_name正在创建的 dbspace 的初始 chunk 的磁盘分区或设备。有效的页大小依赖于计算机的缺省页大小:
● 2 KB 缺省页大小:2、4、6、8、10、12 或 16 KB
● 4 KB 缺省页大小:4、8、12 或 16 KB

用法

使用 create with_check dbspace 参数来检查指定的路径名,如果路径不存在,则返回错误。

这个函数等同于 onspaces -c -d 命令。

示例

下列示例创建大小为 20 MB、偏移量为 0 的 dbspace。

EXECUTE FUNCTION task ("create dbspace", "dbspace3",
"$GBASEDBTDIR/WORK/dbspace3", "20 M", "0");

create dbspace from storagepool 参数:从存储池创建 dbspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create dbspace from storagepool 参数来从存储池中的一个条目创建永久 dbspace。

语法

元素描述关键考虑
dbspace要创建的 dbspace 名。在 dbspace 名称中必须是唯一的,且不可超过 128 字节。名称必须以一个字母或下划线开头,且仅可包括字母、数字、下环线(_)符或 $ 字符。
first_extenttblspace tblspace 的第一个 extent 的大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
initial_chunk_size新 dbspace 的初始 chunk 大小。请参阅 admin() 和 task() 参数大小规范
mirroring_flag二者之一:
● 1 = 镜像
● 0 = 无镜像
镜像标志是可选的。如果未指定,则缺省是无镜像的 dbspace。
next_extenttblspace tblspace 中下一个 extent 的大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
page_size新 dbspace 的非缺省页大小,以 KB 为单位。页大小是可选的。然而,如果您指定 mirroring 为 1,则还必须指定页大小。有效的页大小依赖于计算机的缺省页大小:
● 2 KB 缺省页大小:2、4、6、8、10、12 或 16 KB
● 4 KB 缺省页大小:4、8、12 或 16 KB

要了解创建临时 dbspace 的 admin() 或 task() 语法,请参阅 create tempdbspace 参数:创建临时 dbspace(SQL 管理 API)。

示例

下列命令创建名为 dbspace3 的镜像的 dbspace。新 dbspace 的大小为 1 GB,页大小为 6 KB,tblspace 第一个 extent 大小为 200 KB,且下一个 extent 大小为 400 KB。

EXECUTE FUNCTION task("create dbspace from storagepool",
"dbspace3", "1 GB", "6", "1", "200", "400");

下列命令创建名为 dbspace8 的无镜像的 dbspace。新 dbspace 的大小为 50 MB。因为未指定页大小,所以新 dbspace 为缺省页大小。

EXECUTE FUNCTION task("create dbspace from storagepool",
"dbspace8", "50000");

create plogspace 参数:创建 plogspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create plogspace 参数来创建在其中存储物理日志的 plogspace。

语法

元素描述关键考虑
chunk_size新 plogspace 的 chunk 大小,以 KB 为单位。该大小取整到页大小的倍数。请参阅 admin() 和 task() 参数大小规范
mirror_offset镜像 chunk 的偏移量,以 KB 为单位。无符号整数。该大小必须等于或大于 1000 KB 且是页大小的倍数。起始偏移量加上 chunk 大小不可超过最大 chunk 大小。
最大的 chunk 大小为 2 或 4 TB,依赖于平台。
mirror_path到镜像 plogspace 的 chunk 的那个 chunk 的路径名。如果镜像 plogspace,则 plogspace chunk 不可为可扩展的。
offset磁盘分区内或设备内,达到新 plogspace 的 chunk 的偏移量,以 KB 为单位。无符号整数。该大小必须等于或大于 1000 KB 且是页大小的倍数。起始偏移量加上 chunk 大小不可超过最大的 chunk 大小。
最大的 chunk 大小为 2 或 4 TB,依赖于平台。
path_name正在创建的 plogspace 的 chunk 磁盘分区或设备。该 chunk 必须是现存的无缓冲的设备或缓冲的文件。当您指定路径名时,您可使用完全路径名或相对路径名。然而,如果您使用相对路径名,则该路径名必须与您初始化数据库服务器时的当前目录有关联。
UNIX™ 示例(无缓冲的设备): /dev/rdsk/c0t3d0s4
UNIX 示例(缓冲的设备): /ix/ifmx/db1chunk
plogspace要创建的 plogspace 名。plogspace 名称必须是唯一的且不可超过 128 字节。名称必须以一个字母或下划线开头且必须仅包含字母、数、下划线或 $ 字符。

用法

这个函数等同于 onspaces -c -P 命令。

一个示例可仅有一个 plogspace。如果存在 plogspace,则当您创建新 plogspace时,将物理日志移到新的空间,且删除旧的 plogspace。

物理日志必须存储在单个 chunk 上。缺省情况下,该 chunk 标记为可扩展,以便如果有必要扩展物理内存,则数据库服务器可扩展该 plogspace。如果您镜像该 plogspace,则不可扩展该空间,因为镜像 chunk 不可为可扩展的。

示例

下列示例创建大小为 30000 KB、偏移量为 0 的 plogspace。

EXECUTE FUNCTION task ("create plogspace", "plogdbs",
"/dev/chk1", 30000, 0);

下列示例创建大小为 30000 KB、偏移量为 0 的镜像 plogspace。

EXECUTE FUNCTION task ("create plogspace", "plogdbs",
"/dev/chk1", 30000, 0, "/dev/mchk1", 0);

create sbspace 参数:创建 sbspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create sbspace 参数来创建 sbspace。

语法

元素描述关键考虑
initial_chunk_size新 sbspace 的初始 chunk 的大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
offset磁盘分区内或设备内达到新 sbspace 的初始 chunk 的偏移量,以 KB 为单位。
path_name该 sbspace 的初始 chunk 的磁盘分区或无缓冲的设备。
sbspace要创建的 sbspace 名。

用法

使用 create with_check sbspace 参数来检查指定的路径名,如果路径不存在,则返回错误。

这个函数等同于 onspaces -c -S 命令。

示例

下列示例创建大小为 20 MB、偏移量为 0 的新 sbspace:

EXECUTE FUNCTION task ("create sbspace","sbspace2",
"$GBASEDBTDIR/WORK/sbspace2","20 M","0");

create sbspace from storagepool 参数:从存储池创建 sbspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create sbspace from storagepool 参数来从存储池的条目中创建 sbspace。

语法

元素描述关键考虑
sbspacesbspace 名。sbspace 名称必须是唯一的且不可超过 128 字节。名称必须以一个字母或下划线开头,且必须仅包含字母、数、下划线或 $ 字符。
initial_chunk_size新 sbspace 的初始 chunk 的大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
logging_flag二者之一:
● 1 = 日志记录
● 0 = 无日志记录
日志记录标志是可选的。然而,如果您指定 mirroring 为 1,则还必须指定日志记录标志。
mirroring_flag二者之一:
● 1 = 镜像
● 0 = 无镜像
镜像标志是可选的。

示例

下列命令创建镜像的且记录日志的名为 sbspace1 的 sbspace。新 sbspace 的大小为 240 MB。

EXECUTE FUNCTION task("create sbspace from storagepool", "sbspace1",
"240 MB", "1", "1");

下列命令创建无镜像的且不记录日志的名为 sbspace2 的 sbspace。这个 sbspace 的大小为 5 GB。

EXECUTE FUNCTION task("create sbspace from storagepool", "sbspace2", "5 GB");

create sbspace with accesstime 参数:创建跟踪访问时间的 sbspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create sbspace with accesstime 参数来创建 sbspace,对存储在该 sbspace 中的所有智能大对象跟踪访问的时间。

语法

元素描述关键考虑
initial_chunk_size新 sbspace 的初始 chunk 的大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
offset磁盘分区内或设备内达到新 sbspace 的初始 chunk 的偏移量,以 KB 为单位。
path_name该 sbspace 的初始 chunk 的磁盘分区或无缓冲的设备。
sbspace要创建的 sbspace 名。

用法

使用 create with_check sbspace 参数来检查指定的路径名,如果路径不存在,则返回错误。

这个函数等同于 onspaces -c -S 命令创建 sbspace,且随同 admin() 或 task() 函数,使用 set sbspace accesstime 参数来启动对存储在该 sbspace 中的所有智能大对象跟踪访问的时间。

示例

下列示例创建跟踪访问时间的新 sbspace。这个 sbspace 的大小为 20 MB,偏移量为 0:

EXECUTE FUNCTION task ("create sbspace with accesstime","sbspace4",
"$GBASEDBTDIR/WORK/sbspace4","20 M","0");

create sbspace with log 参数:创建带有事务日志记录的 sbspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create sbspace with log 参数来创建启用事务日志记录的 sbspace。

语法

元素描述关键考虑
initial_chunk_size新 sbspace 的初始 chunk 的大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
offset磁盘分区内或设备内达到新 sbspace 的初始 chunk 的偏移量,以 KB 为单位。
path_name该 sbspace 的初始 chunk 的磁盘分区或无缓冲的设备。
sbspace要创建的 sbspace 名。

用法

使用 create with_check sbspace 参数来检查指定的路径名,如果路径不存在,则返回错误。

这个函数等同于 onspaces -c -S 命令来创建开启日志记录的 sbspace。

示例

下列示例创建开启事务日志记录的新 sbspace。该 sbspace 的大小为 20 MB,偏移量为 0:

EXECUTE FUNCTION task ("create sbspace with log","sbspace2",
"$GBASEDBTDIR/WORK/sbspace2","20 M","0");

create tempdbspace 参数:创建临时 dbspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create tempdbspace 参数来创建临时 dbspace。

语法

元素描述关键考虑
firsttblspace tblspace 的第一个 extent 的大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
initial_chunk_size新的临时 dbspace 的初始 chunk 的大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
nexttblspace tblspace 的下一个 extent 的大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
offset磁盘分区内或设备内,达到新的临时 dbspace 的初始 chunk 的偏移量,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
page新的临时 dbspace 的非缺省页大小,以 KB 为单位。有效的页大小依赖于计算机的缺省页大小:
● 2 KB 缺省页大小:2、4、6、8、10、12 或 16 KB
● 4 KB 缺省页大小:4、8、12 或 16 KB
path_name到您正在创建的临时 dbspace 的初始 chunk 的磁盘分区或设备的路径。
tempdbspace要创建的临时 dbspace 名。不可超过 128 字节。名称必须以一个字母或下划线开头,且仅可包括字母、数字、下划线(_)符号或 $ 字符。

用法

使用 create with_check tempdbspace 参数来检查指定的路径名,如果路径不存在,则返回错误。

这个函数等同于 onspaces -c -d -t 命令。

示例

下列示例创建大小为 20 MB、偏移量为 0 的临时 dbspace:

EXECUTE FUNCTION task("create tempdbspace","tempdbspace3",
"$GBASEDBTDIR/WORK/tempdbspace3","20 M","0");

create tempdbspace from storagepool 参数:从存储池创建临时 dbspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create tempdbspace from storagepool 参数来从存储池中一条目创建临时 dbspace。

语法

元素描述关键考虑
initial_chunk_size新的临时 dbspace 的初始 chunk 大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
page_size新的临时 dbspace 的非缺省页大小,以 KB 为单位。页大小是可选的。
tempdbspace临时 dbspace 名。

示例

下列命令创建名为 tempdbspace1 的临时 dbspace。该新 dbspace 的大小为 1 GB,页大小为 12 KB。

EXECUTE FUNCTION task("create tempdbspace from storagepool", "tempdbspace1", "1 GB", "12");

create tempsbspace 参数:创建临时 sbspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create sbspace 参数来创建 sbspace。

语法

元素描述关键考虑
initial_chunk_size新的临时 sbspace 的初始 chunk 大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
offset磁盘分区内或设备内,达到新的临时 sbspace 的初始 chunk 的偏移量,以 KB 为单位。
path_name临时 sbspace 的初始 chunk 的磁盘分区或无缓冲的设备。
tempsbspace要创建的临时 sbspace 名。

用法

使用 create with_check sbspace 参数来检查指定的路径名,如果路径不存在,则返回错误。

这个函数等同于带有 -t 选项的 onspaces -c -S 命令,创建临时 sbspace。

示例

下列示例创建大小为 20 MB、偏移量为 0 的临时 sbspace:

EXECUTE FUNCTION task ("create tempsbspace","tempsbspace3",
"$ GBASEDBTDIR/WORK/tempsbspace3","20 M","0");

create tempsbspace from storagepool 参数:从存储池创建临时 sbspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 create tempsbspace from storagepool 参数来从存储池中的条目创建临时 sbspace。

语法

元素描述关键考虑
initial_chunk_size新 sbspace 的初始 chunk 大小,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范
tempsbspace临时 sbspace 名。临时 sbspace 名称必须是唯一的且不可超过 128 字节。名称必须以一个字母或下划线开头且必须仅包含字母、数、下划线或 $ 字符。

示例

下列命令创建名为 tempsbspace5 的临时 sbspace。临时 sbspace 的大小为 240 MB。

EXECUTE FUNCTION task("create tempsbspace from storagepool",
"tempsbspace5", "240 MB");

defragment 参数:动态地对分区 extent 取消分片(SQL 管理 API)

随同 admin() 或 task() 函数,使用 defragment 参数来对表或索引取消分片以合并不相邻的 extent。

对表取消分片使得数据行离得更近,以避免分区标题页移除问题,并可提高性能。

在对分区取消分片之前,您应回顾对分区取消分段。

语法

使用下列语法,您或可指定 defragment 参数,或可指定 defragment partnum 参数:

元素描述关键考虑
database包括您想要取消分片的表或索引的数据库名。
owner表所有者的用户 ID。
table要取消分片的表名。
partition_number要取消分片的一个或多个分区号。要指定多于一个分区,请使用逗号分隔的分区号列表。

用法

使用 defragment 参数来对特定的表取消分片。使用 defragment partnum 参数来对一个或多个磁盘分区取消分片。

关于取消分片的信息存储在共享内存中。使用 oncheck -pt 和 -pT:显示表或分片的 tblspaces 命令来显示关于特定的表或分片的 extent 数目信息。使用 onstat -g defragment 命令:打印磁盘碎片整理的分区 extent 。

如果取消分片需要减少 extent 的数目,减少最少 1 extent,则需要返回 0(成功),即使在分区中有许多 extent。

如果分区有单个 extent,则取消分片需要返回 0 来表明需要成功,即使无 extent 合并。

示例

要对 stores_demo 数据库中的 customer 表取消分片,请使用下列函数之一:

EXECUTE FUNCTION task("defragment","stores_demo:gbasedbt.customer");
EXECUTE FUNCTION admin("defragment","stores_demo:gbasedbt.customer");

要对索引取消分片,您必须指定该索引的分区号,如这两个函数示例所示:

EXECUTE FUNCTION task("defragment partnum","2097154");
EXECUTE FUNCTION admin("defragment partnum","2097154");

要对分区列表取消分片,请使用下列函数之一:

EXECUTE FUNCTION task("defragment partnum", "16777217,28477346");
EXECUTE FUNCTION admin("defragment partnum", "16777217,28477346");

drop blobspace 参数:删除 blobspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 drop blobspace 参数来删除指定的 blobspace。

语法

元素描述关键考虑
blobspace要删除的 blobspace 名。必须是现有的 blobspace。 在您删除 blobspace 之前,请删除包括引用该 blobspace 的 TEXT 或 BYTE 列的所有表。

用法

这个函数等同于 onspaces -d 命令。

示例

下列示例删除名为 blobspace3 的 blobspace:

EXECUTE FUNCTION task("drop blobspace","blobspace3");

drop blobspace to storagepool 参数:从空 blobspace 归还空间到存储池(SQL 管理 API)

随同 admin() 或 task() 函数,使用 drop blobspace to storagepool 参数来从空 blobspace 归还空间到存储池。

语法

元素描述关键考虑
blobspace空 blobspace 的名称。

示例

下列命令删除名为 blob2 的空 blobspace 并将所有释放的空间添加到存储池。

EXECUTE FUNCTION task("drop blobspace to storagepool", "blob2");

drop chunk 参数:删除 chunk(SQL 管理 API)

随同 admin() 或 task() 函数,使用 drop chunk 参数来从 dbspace、blobspace 或 sbspace 删除指定的 chunk。

语法

元素描述关键考虑
offset磁盘分区内或无缓冲的设备内,达到您正在删除的 dbspace、blobspace 或 sbspace 的初始 chunk 的偏移量,以 KB 为单位。无符号整数的初始偏移量必须等于或大于 0。起始偏移量加上 chunk 大小不可超过最大的 chunk 大小。最大的偏移量为 4 TB。
还请参阅 admin() 和 task() 参数大小规范
path_name您正在删除的 dbspace、blobspace 或 sbspace 的初始 chunk 的磁盘分区或无缓冲的设备。该 chunk 必须是现有的无缓冲的设备或缓冲的文件。当您指定路径名时,你可使用完全路径名或相对路径名。然而,如果您使用相对路径名,则其必须为相对于当您初始化数据库服务器时的当前目录。
space_name要从中删除 chunk 的 dbspace、sbspace 或 blobspace 名。当数据库服务器为 online 或 quiescent 时,您可从 dbspace、临时 dbspace 或 sbspace 删除 chunk。
仅当数据库服务器处于 quiescent 模式中时,您可从 blobspace 删除 chunk。

用法

这个函数等同于 onspaces -d 命令。

示例

下列示例从名为 dbspc3 的 dbspace 在偏移量 5200 KB 处删除 chunk:

EXECUTE FUNCTION task("drop chunk", "dbspc3","\\.\e:","5200");

drop chunk to storagepool 参数:从空 chunk 归还空间到存储池(SQL 管理 API)

随同 admin() 或 task() 函数,使用 drop chunk to storagepool 参数来从空 chunk 归还空间到存储池。

语法

元素描述关键考虑
space_namechunk 所在其中的存储空间的名称。
path_namechunk 的路径。
offsetchunk 的偏移量,以 KB 为单位。

示例

下列命令在名为 bigdbs 的 dbspace 中删除空 chunk,并将所有释放的空间添加到存储池。

EXECUTE FUNCTION task("drop chunk to storagepool", "bigdbs", "/dev/rawdisk23", "100 KB");

drop database 参数:删除数据库(SQL 管理 API)

随同 admin() 或 task() 函数,使用 drop database 参数来删除数据库。

语法

元素描述关键考虑
database_name数据库名。

用法

这个函数等同于 DROP DATABASE 语句。这个函数删除整个数据库,包括所有系统目录表、对象和数据。

示例

下列示例删除名为 demodbs 的数据库:

EXECUTE FUNCTION task("drop database","demodbs");

drop dbspace 参数:删除 dbspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 drop dbspace 参数来删除指定的 dbspace。

语法

元素描述关键考虑
dbspace要删除的 dbspace 名。该 dbspace 必须存在。 在您删除 dbspace之前,请删除所有您以前在该 dbspace 中创建的数据库和表。

用法

这个函数等同于 onspaces -d 命令。

示例

下列示例删除名为 dbspace4 的 dbspace:

EXECUTE FUNCTION task("drop dbspace","dbspace4");

drop dbspace to storagepool 参数:从空 dbspace 归还空间到存储池(SQL 管理 API)

随同 admin() 或 task() 函数,使用 drop dbspace to storagepool 参数来从空 dbspace 归还空间到存储池。

语法

元素描述关键考虑
dbspace空 dbspace 的名称。

示例

下列命令删除名为 dbs5 的空 dbspace,并将所有释放的空间添加到存储池。

EXECUTE FUNCTION task("drop dbspace to storagepool", "dbs5");

drop log 参数:删除逻辑日志(SQL 管理 API)

随同 admin() 或 task() 函数,使用 drop log 参数删除指定的逻辑日志。

语法

元素描述关键考虑
log_number逻辑日志文件编号。该编号必须是一个大于或等于 0 的无符号整数。

用法

使用这个函数来删除单个逻辑日志文件。

数据库服务器随时都要求最少三个逻辑日志文件。如果数据库服务器仅有三个逻辑日志文件,则您不可删除日志文件。

重要

在您可删除前三个逻辑日志文件的任何一个之前,必须添加新的逻辑日志文件并运行逻辑日志文件的备份。必须使用 ontape -a 命令或 ontape -c 命令运行备份。在您添加新的逻辑日志文件并运行备份之后,您可使用 onparams -d -llognum 来删除前三个逻辑日志文件。

日志文件的状态决定能否删除日志文件,还决定当删除日志文件时数据库服务器采取的行动:

  • 如果您删除一个还没有写过的日志文件,状态为新“添加的”(A),则数据库服务器删除日志文件并立即释放空间。
  • 如果您删除一个状态为“用户”(U)或“释放”(F)的已使用过的日志文件,则数据库服务器将日志文件标记为“删除的”(D)。在您对包含日志文件的 dbspace 和 root dbspace 进行 0 级备份之后,数据库服务器删除该日志文件并释放空间。
  • 您不可删除当前在用(C)或包含最后检查点记录(L)的日志文件。

您可从 onstat -l 命令的编号域获取日志编号。日志编号可能是无序的。

这个函数等同于 onparams -d -l lognum 命令。

示例

下列示例删除文件编号为 2 的逻辑日志:

EXECUTE FUNCTION task("drop log","2");

下列示例通过根据 chunk 编号查找日志编号来删除特定 chunk 的日志:

SELECT task("drop log", number) FROM sysmaster:syslogfil WHERE chunk = 1;

drop plogspace 参数:删除 plogspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 drop plogspace 参数来删除 plogspace。

语法

用法

要删除的 plogspace 必须为空。例如,如果您将物理日志移出 plogspace 并通过运行 onparams -p 命令移入 dbspace,则可删除该 plogspace。要不,您可通过创建新的 plogspace 将 plogspace 移到不同的 chunk。自动地移除旧的 plogspace。

这个函数等同于 onspaces -d 命令。

示例

下列示例删除 plogspace:

EXECUTE FUNCTION task("drop plogspace");

drop sbspace 参数:删除 sbspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 drop sbspace 参数来删除指定的 sbspace。

语法

元素描述关键考虑
sbspace要删除的 sbspace 名。该 sbspace 必须存在。 在您删除 sbspace 之前,请删除所有包括引用该 sbspace 的 BLOB 或 CLOB 列的表。

用法

这个函数等同于 onspaces -d 命令。

示例

下列示例删除名为 sbspace3 的 sbspace:

EXECUTE FUNCTION task("drop dbspace","sbspace3");

drop sbspace to storagepool 参数:从空 sbspace 归还空间到存储池(SQL 管理 API)

随同 admin() 或 task() 函数,使用 drop sbspace to storagepool 参数来从空 sbspace 归还空间到存储池。

语法

元素描述关键考虑
sbspace空 sbspace 名。

示例

下列命令删除名为 sbspace8 的空 sbspace,并将所有释放的空间添加到存储池。

EXECUTE FUNCTION task("drop sbspace to storagepool", "sbspace8");

drop tempdbspace 参数:删除临时 dbspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 drop tempdbspace 参数来删除指定的临时 dbspace。

语法

元素描述关键考虑
tempdbspace要删除的临时 dbspace 名称。该临时 dbspace 必须存在。 在您删除临时 dbspace 之前,请删除您之前在该临时 dbspace 中创建的所有数据库和表。

用法

这个函数等同于 onspaces -d 命令。

示例

下列示例删除名为 tdbspace2 的临时 temporary:

EXECUTE FUNCTION task("drop tempdbspace","tdbspace2");

drop tempdbspace to storagepool 参数:从空的临时 dbspace 归还空间到存储池(SQL 管理 API)

随同 admin() 或 task() 函数,使用 drop tempdbspace to storagepool 参数来从空的临时 dbspace 归还空间到存储池。

语法

元素描述关键考虑
tempdbspace空的临时 dbspace 名称。

示例

下列命令删除名为 tempdbs1 的临时 dbspace,并将所有释放的空间添加到存储池。

EXECUTE FUNCTION task("drop tempdbspace to storagepool", "tempdbs1");

drop tempsbspace to storagepool 参数:从空的临时 sbspace 归还空间到存储池(SQL 管理 API)

随同 admin() 或 task() 函数,使用 drop tempsbspace to storagepool 参数来从空的临时 sbspace 归还空间到存储池。

语法

元素描述关键考虑
tempsbspace空的临时 sbspace 名称。

示例

下列命令删除名为 tempsbspace3 的空的临时 sbspace,并将所有释放的空间添加到存储池。

EXECUTE FUNCTION task("drop tempsbspace to storagepool", "tempsbspace3");

export config 参数:导出配置参数值(SQL 管理 API)

随同 admin() 或 task() 函数,使用 export config 参数来导出包含所有配置参数及其当前值的文件。

语法

元素描述关键考虑
file_path文件的完全路径名请不要添加扩展名。

用法

该 SQL 管理 API 导出命令自动地创建一 ASCII 文件,赋予它您在命令中指定的名字。该文件的格式与 onconfig.std 文件的格式相同。

您必须指定完全路径名。不可指定相对路径。

这个命令等同于 onmode –we 命令。

示例

下列命令将所有配置参数及其当前值导出到 /tmp 目录中的名为 cfg_12 的文件:

EXECUTE FUNCTION task("export config", "/tmp/cfg_12");

file status 参数:显示消息日志文件的状态(SQL 管理 API)

随同 admin() 或 task() 函数,使用 file status 参数来指定一 online、ON-Bar 活动或 ON-Bar 调试消息日志文件的状态。

语法

元素描述关键考虑
file_pathonline、ON-Bar 活动或 ON-Bar 调试消息日志文件的完全路径名。

示例

下列示例展示您可用来显示 /usr/gbasedbt/online.log 文件状态的参数:

execute function task("file status", "/usr/gbasedbt/online.log");

然后,服务器显示如下信息:

grant admin 参数:授予运行 SQL 管理 API 命令的权限

随同 admin() 或 task() 函数,使用 grant admin 参数来授予运行 SQL 管理 API 命令的权限。

语法

元素描述关键考虑
user_name授予权限的用户名。
privilege_group权限组名。请参阅 SQL 管理 API 门户:按权限组划分参数 查看权限组列表。

用法

可授予个别用户权限来通过运行 SQL 管理 API 命令管理数据库。拥有这些权限的用户可以他们的用户名连接到数据库服务器并运行 SQL 管理 API 命令,或通过使用 GBase OpenAdmin Tool (OAT) for GBase 8s 或直接地通过连接。

仅用户 gbasedbt,或拥有 ADMIN 或 SQL 管理 API 命令的 GRANT 权限的用户可使用 grant admin 参数。

示例

下列命令授予运行备份和恢复 SQL 管理命令的权限给用户 Bob:

EXECUTE FUNCTION task("grant admin", "Bob", "BAR");

ha make primary 参数:更改辅助服务器的模式(SQL 管理 API)

随同 admin() 或 task() 函数,使用 ha make primary 参数来将指定的辅助服务器更改为主服务器或标准服务器。

语法

元素描述关键考虑
database_server数据库服务器名。该名称必须在 sqlhosts 文件中的 dbservername 条目中定义,或作为 Enterprise Replication 组名。

用法

依赖于辅助服务器的类型,这个函数会有不同的结果:

  • HAC 辅助服务器:关闭当前主服务器,且 HAC 辅助服务器成为主服务器。
  • RHAC 辅助服务器:RHAC 辅助服务器更改为标准服务器。
  • SSC 辅助服务器:SSC 辅助服务器成为新的主服务器。

使用 ha make primary 参数来将一不活动的辅助服务器更改为主服务器,当他们之间有活动的连接时。

使用 ha make primary force 参数来将一不活动的辅助服务器更改为主服务器,无论辅助服务器是否连接到它。如果连接是活动的,则函数成功,然而,如果您以 force 参数 在 SD 辅助服务器上运行该函数,则共享磁盘子系统可遭损坏。

这个函数等同于 onmode -d make primary 命令。

示例

下列示例将名为 ids_stores2 的 HAC 辅助服务器转换成为主服务器:

EXECUTE FUNCTION task("ha make primary","ids_stores2");

ha rss 参数:创建 RHAC 辅助服务器(SQL 管理 API)

随同 admin() 或 task() 函数,使用 ha rss 参数来创建远程独立(RHAC)辅助服务器。

语法

元素描述关键考虑
password要设置或更改的口令。仅在第一次连接尝试期间使用此口令。主服务器和辅助服务器已经连接之后,不可更改该口令。
primary_server主数据库服务器的名称。必须在 DBSERVERNAME 或 DBSERVERALIASES 配置参数中定义该名称,或作为 Enterprise Replication 组名。

用法

在标准服务器或 quiescent HAC 辅助服务器上运行这个函数来将其转换为 RHAC 辅助服务器。

这个函数等同于 onmode -d RSS 命令。

示例

下列示例将标准服务器转换成为 RHAC 辅助服务器,主服务器名为 ids_stores:

EXECUTE FUNCTION task("ha rss","ids_stores");

ha rss add 参数:将 RHAC 辅助服务器添加到主服务器(SQL 管理 API)

随同 admin() 或 task() 函数,使用 ha rss add 参数来将主服务器与远程独立(RHAC)辅助服务器关联。

语法

元素描述关键考虑
password要设置或更改的口令。仅在第一次连接尝试期间使用该口令。主服务器和辅助服务器已经连接之后,不可更改该口令。
secondary_server要转换到 RS 辅助服务器的数据库服务器的名称。必须在 sqlhosts 文件中的 dbservername 条目中定义该名称,或作为 Enterprise Replication 组名。

用法

从已建立的主服务器运行这个函数来创建 RHAC 辅助服务器并在 sysha 数据库中注册该 RHAC 辅助服务器名。

这个函数等同于 onmode -d add RSS 命令。

示例

下列示例将名为 ids_stores2 的服务器作为 RS 辅助服务器与主服务器关联:

EXECUTE FUNCTION task("ha rss add","ids_stores2");

ha rss change 参数:更改 RHAC 辅助服务器的口令(SQL 管理 API)

随同 admin() 或 task() 函数,使用 ha rss change 参数来更改指定的 RHAC 辅助服务器的连接口令。

语法

元素描述关键考虑
password要设置或更改的口令。仅在第一次连接尝试期间使用该口令。主服务器与辅助服务器已经连接之后,不可更改该口令。
secondary_server要转换到 RHAC 辅助服务器的数据库服务器名。必须在 sqlhosts 文件中的 dbservername 条目中定义该名称,或作为 Enterprise Replication 组名。

用法

在已建立的主服务器上运行这个函数来更改在主服务器与辅助服务器之间连接的口令。

这个函数等同于 onmode -d change RSS 命令。

示例

下列示例更改 RHAC 辅助服务器的口令为 secure:

EXECUTE FUNCTION task("ha rss change","ids_stores2","secure");

ha rss delete 参数:删除 RHAC 辅助服务器(SQL 管理 API)

随同 admin() 或 task() 函数,使用 ha rss delete 参数来停止复制并删除 RHAC 辅助服务器。

语法

元素描述关键考虑
secondary_server要转换到 RHAC 辅助服务器的数据库服务器名。必须在 sqlhosts 文件中的 dbservername 条目中定义该名称,或作为 Enterprise Replication 组名。

用法

从已建立的主服务器运行这个函数来停止复制,删除 RHAC 辅助服务器,并将 RHAC 辅助服务器转换到标准服务器。

这个函数等同于 onmode -d delete RSS 命令。

示例

下列示例删除名为 ids_stores2 的 RHAC 辅助服务器:

EXECUTE FUNCTION task("ha rss delete","ids_stores2");

ha sds clear 参数:停止共享磁盘复制(SQL 管理 API)

随同 admin() 或 task() 函数,使用 ha sds clear 参数来停止复制到共享磁盘(SSC)辅助服务器并将主服务器转换为标准服务器。

语法

元素描述关键考虑
primary_server要转换到标准服务器的主服务器名。必须在 sqlhosts 文件中的 dbservername 条目中定义该名称,或作为 Enterprise Replication 组名。

用法

在已建立的主服务器上运行这个函数来停止复制到 SSC 辅助服务器。

这个函数等同于 onmode -d clear SDS primary 命令。

示例

下列示例停止从名为 ids_stores 的主服务器复制到 SSC 辅助服务器:

EXECUTE FUNCTION task("ha sds clear","ids_stores");

ha sds primary 参数:将 SSC 辅助服务器转换到主服务器(SQL 管理 API)

随同 admin() 或 task() 函数,使用 ha sds primary 参数来将共享磁盘(SSC)辅助服务器更改为主服务器。

语法

元素描述关键考虑
secondary_server要设置作为主服务器的 SD 辅助服务器的名称。必须在 sqlhosts 文件中的 dbservername 条目中定义该名称,或作为 Enterprise Replication 组名。

用法

在已建立的 SSC 辅助服务器上运行这个函数来将其转换到主服务器。

使用 ha sds primary 参数来将不活动的 SSC 辅助服务器转换到主服务器,如果该 SSC 辅助服务器连接到它。

使用 ha sds primary force 参数来将不活动的 SSC 辅助服务器转换为主服务器,无论是否有任何 SSC 辅助服务器连接到它。如果会话是活动的,则调用成功,但共享磁盘子系统可被损坏。

这个函数等同于 onmode -d make primary 命令。

示例

下列示例将名为 ids_stores3 的 SSC 辅助服务器转换到主服务器:

EXECUTE FUNCTION task("ha sds primary","ids_stores3");

ha sds set 参数:创建共享磁盘主服务器(SQL 管理 API)

随同 admin() 或 task() 函数,使用 ha sds set 参数来定义主服务器复制到共享磁盘(SSC)辅助服务器。

语法

元素描述关键考虑
primary_server要设置作为主服务器的数据库服务器名。必须在 sqlhosts 文件中的 dbservername 条目中定义该名称,或作为 Enterprise Replication 组名。

用法

在标准服务器上运行这个函数来定义其作为 SSC 辅助服务器的主服务器。

使用 ha sds set 参数来定义不活动的标准服务器作为主服务器,如果 SSC 辅助服务器连接到它。

使用 ha sds set force 参数来定义不活动的标准服务器作为主服务器,无论是否有任何 SSC 辅助服务器连接到它。如果会话是活动的,则调用成功,但共享磁盘子系统可被损坏。

这个函数等同于 onmode -d set SDS primary 命令。

示例

下列示例将名为 ids_stores 的标准服务器转换到主服务器:

EXECUTE FUNCTION task("ha sds set","ids_stores");

ha set idxauto 参数:复制索引到辅助服务器(SQL 管理 API)

随同 admin() 或 task() 函数,使用 ha set idxauto 参数来控制是否自动地将索引复制到辅助服务器。

语法

用法

在已建立的主服务器上运行这个函数来启用或禁用向辅助服务器的自动索引复制。

您可在任何类型的主服务器上运行这个函数。

这个函数等同于 onmode -d idxauto 命令。

示例

下列示例启用自动的索引复制:

EXECUTE FUNCTION task("ha set idxauto on");

ha set ipl 参数:在主服务器上构建日志索引(SQL 管理 API)

随同 admin() 或 task() 参数,使用 ha set ipl 参数来控制是否在主服务器上构建日志索引。

语法

用法

在已建立的主服务器上运行这个函数来启用或禁用索引构建的日志记录。这个函数重置 ONCONFIG 文件中 LOG_INDEX_BUILDS 配置参数的值。

您可在任何类型的主服务器上运行这个函数。

这个函数等同于 onmode -wf LOG_INDEX_BUILDS 命令。

示例

下列示例启用索引构建的日志记录:

EXECUTE FUNCTION task("ha set ipl on");

ha set primary 参数:定义 HAC 主服务器(SQL 管理 API)

随同 admin() 或 task() 函数,使用 ha set primary 参数来定义“高可用性数据复制”(HAC)主服务器并指定辅助服务器。

语法

元素描述关键考虑
secondary_server要连接到的 HAC 辅助服务器名。必须在 sqlhosts 文件中的 dbservername 条目中定义该名称,或作为 Enterprise Replication 组名。

用法

在标准服务器上运行这个函数来将其转换到 HAC 主服务器并连接到指定的 HAC 辅助服务器。如果连接成功,则开始复制。

这个函数等同于 onmode -d primary 命令。

示例

下列示例将名为 ids_stores 的标准服务器转换到 HAC 主服务器:

EXECUTE FUNCTION task("ha set primary","ids_stores");

ha set secondary 参数:定义 HAC 辅助服务器(SQL 管理 API)

随同 admin() 或 task() 函数,使用 ha set secondary 参数来定义“高可用性数据复制”(HAC)辅助服务器并指定主服务器。

语法

元素描述关键考虑
primary_server要连接到的 HAC 主服务器名。必须在 sqlhosts 文件中的 dbservername 条目中定义该名称,或作为 Enterprise Replication 组名。

用法

在标准数据库服务器上运行这个函数来将其转换到 HAC 辅助服务器,并连接到指定的主服务器。如果连接成功,则开始复制。

这个函数等同于 onmode -d secondary 命令。

示例

下列示例将标准服务器转换到 HAC 辅助服务器,主服务器名为 ids_stores:

EXECUTE FUNCTION task("ha set secondary","ids_stores");

ha set standard 参数:将 HAC 服务器转换成为标准服务器(SQL 管理 API)

随同 admin() 或 task() 函数,使用 ha set standard 参数来将“高可用性数据复制”(HAC)主服务器或辅助服务器转换到标准服务器。

语法

用法

在 HAC 主服务器或辅助服务器上运行这个函数来将其转换到标准服务器。删除主服务器与辅助服务器之间的连接,且终止复制。不更改 HAC 对中其他服务器的模式。

这个函数等同于 onmode -d standard 命令。

示例

下列示例将 HAC 辅助服务器转换到标准服务器:

EXECUTE FUNCTION task("ha set standard");

ha set timeout 参数:更改 SSC 辅助服务器超时(SQL 管理 API)

随同 admin() 或 task() 函数,使用 ha set timeout 参数来更改主服务器等待来自共享磁盘(SSC)辅助服务器的响应的时间秒数。

语法

元素描述关键考虑
seconds在断开 SSC 辅助服务器连接之前,主服务器等待的秒数。该值必须是下列范围内的正整数:
● 从 2
● 至 2 147 483 647

用法

在已建立的共享磁盘主服务器上运行这个函数来指定主服务器等待从 SSC 辅助服务器发送日志位置响应的时间秒数。如果在指定的时间量内未收到来自 SSC 辅助服务器的日志位置响应, 则主服务器从 SSC 辅助服务器断开并继续。如果在等待 SSC 辅助服务器时页清空已经超时,则等待指定秒数之后,主服务器启动移除 SSC 辅助服务器。

这个函数重置 ONCONFIG 文件中 SDS_TIMEOUT 配置参数的值。

这个函数等同于 onmode -wf SDS_TIMEOUT 命令。

示例

下列示例设置超时期间为 5 秒:

EXECUTE FUNCTION task("ha set timeout","5");

import config 参数:导入配置参数值(SQL 管理 API)

随同 admin() 或 task() 函数,使用 import config 参数来导入包含一个或多个可动态地更新的配置参数的文件并应用这些新值。

语法

元素描述关键考虑
file_path包含一个或多个可动态地更新的配置参数名称和值的以前导出的文件的完全路径名。

用法

可动态地更改的配置参数是那些您可以 onmode -wf 或 onmode -wm 命令为会话更改的参数。

您必须指定完全路径名。你不可指定相对路径。

这个命令等同于 onmode –wi 命令。

示例

下列命令导入 /tmp 目录中名为 cfg_12 的文件:

EXECUTE FUNCTION task("import config", "/tmp/cfg_12");

index compress repack shrink 参数:优化 B-tree 索引的存储(SQL 管理 API)

随同 admin() 或 task() 函数,使用 index compress repack shrink 参数来压缩分离的 B-tree 索引,合并空闲空间(重新打包)并归还分区中的空闲空间(收缩)。

语法:索引压缩命令参数

命令参数

下表包含每一参数的简要说明。

表. 索引压缩操作的参数

参数描述
compress压缩索引。
parallel并行地运行压缩或重新打包操作。为每一表的分片或分片列表启动一个线程,且跨越这些分片并行地运行该操作。
repack通过将数据移到索引的前部来合并空闲空间。
shrink将索引末端的空闲空间归还到 dbspace,从而减少索引的总大小。

命令元素

下表显示您可用来压缩、重新打包和收缩索引的元素。

表. 索引压缩命令元素

元素描述关键考虑
index_name您想要压缩的索引名称。必需的。
您必须使用系统目录表中相同的大写或小写字母。
database_name包含您想要压缩的索引的数据库名。可选的。
如果您未指定数据库,则数据库服务器使用当前的数据库。
如果您输入数据库名,则必须使用与系统目录表中相同的大写或小写字母。
owner包含您想要压缩的索引的数据库的所有者名。可选的。
如果您未指定所有者,则数据库服务器使用当前的所有者。
如果您输入所有者名,则必须使用与系统目录表中相同的大写或小写字母。

用法

您可压缩一个在分片的或未分片的表上分离的 B-tree 索引。

要被压缩,索引必须有至少 2000 个键。如果索引内的分片没有至少 2000 个键,则当创建索引时数据库服务器不压缩索引或分片。即使有新的键添加到索引,索引也保持不压缩。如果您想要压缩该索引,请运行另一个带有 index compress 参数的 SQL 管理 API task() 或 admin() 函数。

要确定索引是否包含最小键数,请运行 oncheck -pT 命令并查看 Number of keys 域中的信息。

通常情况下,请您在压缩操作之后执行重新打包操作,并在重新操作之后执行收缩。

压缩操作仅压缩索引的叶子(底层)。

你可取消操作,例如在 DB-Access 中按下 CTRL-C。

你不可解压缩索引。如果您想要解压缩索引,则可删除压缩的索引并重新创建它。

示例

下列命令并行地压缩、重新打包并收缩索引。

EXECUTE FUNCTION task("index compress repack shrink parallel",
"ind5", "customer", "jayson");

index estimate_compression 参数:估计索引压缩(SQL 管理 API)

随同 admin() 或 task() 函数,使用 index estimate_compression 参数来估计您是否可通过压缩 B-tree 索引节省磁盘空间。

语法:index estimate_compression 命令参数

命令元素

下表显示您可用来估计索引压缩的元素。

元素描述关键考虑
index_name您想要估算压缩成效的那个索引的名称。要求的。
您必须使用与系统目录表中相同的大写或小写字母。
database_name包含该索引的数据库名。可选的。
如果您未指定数据库,则数据库服务器使用当前的数据库。
如果您输入数据库名称,则必须使用与系统目录表中相同的大写或小写字母。
owner包含该索引的数据库的所有者名称。对于索引可选的。
如果您未指定所有者,则数据库服务器使用当前的所有者。
如果您输入所有者名称,则必须使用与系统目录表中相同的大写或小写字母。

用法

您可仅对分片的或未分片的表上分离的 B-tree 索引估计压缩。

估计压缩操作显示索引名、可被归档的估计的压缩比率、当前的压缩比率和百分率损益的估计。如果索引未压缩,则当前的比率为 0.0。

示例

下列命令估计 customer 数据库中名为 ind4 的索引压缩成效,数据库所有者是 anjul。

EXECUTE FUNCTION task("index estimate_compression","ind4","customer","anjul");

message log delete 参数:删除消息日志文件(SQL 管理 API)

随同 admin() 或 task() 函数,使用 message log delete 参数或 file delete 参数来指定要删除的特定 online、ON-Bar 活动或 ON-Bar 调试消息日志。

语法

元素描述关键考虑
file_path特定的 online、ON-Bar 活动或 ON-Bar 调试消息日志文件的完全路径名。

示例

下列示例显示您可用来删除 /usr/gbasedbt/online.log 文件的参数:

execute function task("message log delete", "/usr/gbasedbt/online.log");
execute function task("file delete", "/usr/gbasedbt/online.log");

message log rotate 参数:轮换消息日志文件(SQL 管理 API)

随同 admin() 或 task() 函数,使用 message log rotate 参数或 file rotate 参数来指定要轮换的特定 online、ON-Bar 活动或 ON-Bar 调试消息日志文件,并指明要轮换的消息日志的最大数目。

当消息日志文件轮换时,数据库服务器切换到新的 online 消息日志文件,且将先前的日志文件 ID 号增加 1。当达到日志文件的最大数目时,删除最高 ID 的日志文件。

语法

元素描述关键考虑
file_path服务器将轮换的 online、ON-Bar 活动或 ON-Bar 调试日志文件的全路径名,例如,/usr/gbasedbt/online.log。
maximum_version最高 ID 的日志文件。这个是服务器将轮换的最大消息日志版本。

示例

下列示例显示您可用来轮换最大 52 的 /usr/gbasedbt/online.log 文件的参数:

execute function task("message log rotate", "/usr/gbasedbt/online.log",52);
execute function task("file rotate", "/usr/gbasedbt/online.log",52);

当数据库服务器轮换这些文件时,服务器删除该文件的版本 52。版本 51 成为版本,版本 50 成为版本 51,依此类推。新的 online 日志成为版本 1。

message log truncate 参数:删除消息日志文件的内容(SQL 管理 API)

随同 admin() 或 task() 函数,使用 message log truncate 参数或 file truncate 参数来指定要删节的特定 online、ON-Bar 活动或 ON-Bar 调试消息日志文件。当数据库服务器删节消息日志文件时,服务器删除日志文件中的消息,但保留日志文件。

语法

元素描述关键考虑
file_pathonline、ON-Bar 活动或 ON-Bar 调试消息日志文件的完全路径名。

示例

下列示例显示您可用来删节 /usr/gbasedbt/online.log 文件的参数:

execute function task("message log truncate", "/usr/gbasedbt/online.log");
execute function task("file truncate", "/usr/gbasedbt/online.log");

modify chunk extend 参数:扩展 chunk 的大小(SQL 管理 API)

随同 admin() 或 task() 函数,使用 modify chunk extend 参数来以指定的最小数量扩展 chunk 的大小。该 chunk 必须标记为可扩展的。

语法

元素描述关键考虑
chunk_numberThe number of the chunk.chunk 号。
extend_amount要添加到 chunk 的空间的最小数量,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范

用法

在该 chunk 可被扩展之前,你必须或手工地或自动地标记 chunk 为可扩展的。随同 admin() 或 task() 函数,使用 modify chunk extendable 参数来标记 chunk 为可扩展的。

modify chunk extend SQL 管理 API 命令是 adm_add_storage 任务的替代方式。当包含该 chunk 运行的空间空闲页不足或用尽时,服务器可运行这个任务来自动地扩展 chunk 的大小。

您不可在镜像的空间中扩展 chunk,且如果您在运行 modify chunk extend SQL 管理 API 命令时提供了镜像 chunk 号,则您将收到错误提示。

要识别镜像的空间中的主 chunk 和镜像 chunk,请在 onstat -d 命令输出中 flags 域的位置 1 中查找 P (主)或 M(镜像)。

服务器可能截取需要的大小,依赖于页大小和该空间配置的创建大小和扩展大小。

示例

假定您的 onstat -d 命令输出显示 3 号 chunk 是镜像 chunk,4 号 chunk 不是镜像 chunk。您不可扩展 3 号 chunk 的大小。然而,您可更改 4 号 chunk。下列命令扩展 4 号 chunk 的大小 10000 KB:

EXECUTE FUNCTION task("modify chunk extend", "4", "10000");

modify chunk extendable 参数:标记 chunk 为可扩展的(SQL 管理 API)

随同 admin() 或 task() 函数,使用 modify chunk extendable 参数来指定未镜像的 dbspace 或临时 dbspace 中的特定 chunk 可扩展。

语法

元素描述关键考虑
chunk_numberchunk 号。

用法

如果 chunk 标记为可扩展的,则二者之一:

当包含该 chunk 的未镜像的 dbspace 或临时 dbspace 运行空闲页太少或用尽时,服务器可自动地扩展 chunk。

您可随同 admin() 或 task() 函数,使用 modify chunk extend 参数来扩展 chunk 的大小。

然而,如果 dbspace 或临时 dbspace 的扩展大小设置为 0,则服务器不可在那个空间中自动地扩展可扩展的 chunk。在这种情况下,您仍可手动地扩展 chunk。

服务器将自动地标记那些从可扩展的存储池条目分配的 chunk 为可扩展的。因此,您不需要标记这些 chunk 为可扩展的。要了解关于可扩展的存储池条目的信息,请参阅 storagepool add 参数:添加存储池条目(SQL 管理 API)。

不可扩展镜像的空间中的 chunk。如果您试图使镜像 chunk 为可扩展的,则您会收到错误提示。

要识别镜像的空间中的主 chunk 和镜像 chunk,请在 onstat -d 命令输出中 flags 域的位置 1 中查找 P(主)或 M(镜像)。

示例

下列 onstat -d 输出的片段显示 3 号 chunk 是镜像 chunk:

如此,您不可扩展 3 号 chunk 的大小。然而,您可指定 4 号 chunk 为可扩展的,如下所示:

EXECUTE FUNCTION sysadmin:task("modify chunk extendable", "4");

modify chunk extendable off 参数:标记 chunk 为不可扩展的(SQL 管理 API)

随同 admin() 或 task() 函数,使用 modify chunk extendable off 参数来指定特定的 chunk 不可被扩展。

语法

元素描述关键考虑
chunk_numberchunk 号。

用法

chunk 的缺省状态是不可扩展的。如果您先前标记了 chunk 为可扩展的,则您可更改状态为不可扩展的。

如果 chunk 标记为不可扩展的,则:

当包含该 chunk 的空间运行空闲页太低或用尽时,服务器不可自动地扩展该 chunk。

您不可手工地扩展该 chunk 的大小。

如果存储池包含条目,则服务器可通过添加另一 chunk 到该存储空间来扩展存储空间。

示例

下列示例指定您或服务器不可扩展 chunk 9:

EXECUTE FUNCTION task("modify chunk extendable off", "9");

modify config 参数:更改配置参数(SQL 管理 API)

随同 admin() 或 task() 函数,使用 modify config 参数来更改内存中配置参数的值,直到您重启数据库服务器。使用 modify config persistent 参数来更改内存中配置参数的值并在您重启服务器之后在 onconfig 文件中保存该值。

语法

表 1. modify config 命令元素

元素描述关键考虑
configuration_parameter_name您想要更改的配置参数的名称。
new_value配置参数的新值。

用法

这个 SQL 管理 API 命令等用于使用 onmode -wm 或 -wf 命令来更改配置参数的值。

示例

下列命令为当前使用将内存中的 DYNAMIC_LOGS 配置参数的值更改为 2:

EXECUTE FUNCTION task("modify config","DYNAMIC_LOGS","2");

下列命令为当前使用更改 DYNAMIC_LOGS 配置参数的值。在您重启服务器之后,更改的值保留在 onconfig 文件中。

EXECUTE FUNCTION task("modify config persistent","DYNAMIC_LOGS","2");

modify space expand 参数:扩大空间的大小(SQL 管理 API)

随同 admin() 或 task() 函数,使用 modify space expand 参数来立即扩大空间的大小,当您不想等待 GBase 8s 来自动地扩大空间时。

语法

元素描述关键考虑
space_name存储空间的名称。
minimum_size您想要扩大空间大小的最小值。请参阅 admin() 和 task() 参数大小规范

用法

modify space expand SQL 管理 API 命令立即扩大存储空间,或通过扩展该空间中的可扩展 chunk,或者通过添加新 chunk。空间的创建大小和扩展大小设置不影响这个操作。

添加到空间的实际 KB 数可能超过您需要的大小,这依赖于一些因素,比如空间的页大小,以及存储池中可用条目的 chunk 大小设置。

存储池必须包含服务器可用来扩展该空间的条目(比如裸设备、熟文件或目录)。

您运行 modify space expand SQL 管理 API 命令之后, GBase 8s 通过扩展该空间中可扩展 chunk 来首次尝试扩大该空间。如果该空间不包含任何可扩展的 chunk,则服务器使用存储池中的条目来扩展该空间。

您不可扩大镜像的存储空间。

示例

下列命令扩大 dbspace5 10 MB:

EXECUTE FUNCTION task("modify space expand", "dbspace5", "10 MB");

modify space sp_sizes 参数:更改可扩展的存储空间的大小(SQL 管理 API)

随同 admin() 或 task() 函数,使用 modify space sp_sizes 参数来更改与扩大的存储空间相关的创建大小、扩展大小和大小的最大值。更改大小来控制 GBase 8s 如何使用特定存储空间的存储池条目。

语法

元素描述关键考虑
space_name存储空间的名称。
max_size存储空间大小的最大值,以 KB 为单位。大小的缺省最大值为 0,表明大小不受限制。
new_create_size当使用存储池动态地扩大这个空间时,服务器可创建的新 chunk 大小的最小值。您可定义该大小为 KB 数,或为全部空间的百分率。缺省创建大小设置为该空间全部大小的 10%。
指定的大小会影响服务器自动地创建的 chunk。该大小不影响您可能为相关的空间创建的任何手工 chunk。
new_extend_size当在无镜像的 dbspace 或临时 dbspace 中自动地扩展 chunk 时,服务器可使用该大小的最小值。该大小可指定为 KB 数,或全部空间的百分率。缺省扩展大小为 10 MB。
指定的大小会影响服务器自动地扩展的 chunk。该大小不影响您对相关的空间进行的任何手工 chunk 扩展。

用法

如果创建大小或扩展大小值为 100 或更低的值,则 GBase 8s 将该值解释为百分率(例如,10 = 10%,2.84 = 2.84%)。 如果该值为 1000 或更高,则服务器将该值解释为特定的 KB数。值 100 - 1000 无效。

如果您设置创建大小和扩展大小为 0,则即使当空间变满时 GBase 8s 也不自动地扩大该空间。此外,如果您设置扩展大小为 0,则您还从那个空间中的所有 chunk 移除“Extendable”标志。这是使用一个操作将空间中所有 chunk 标记为不可扩展的一种简便方法。

创建大小和扩展大小值是大小的最小值。空间扩大的实际大小可能更大,这依赖于服务器正在使用的存储池的 chunk 大小,或服务器在那个特定时间需要的空间量。

例如,假定您在必要时创建了一个存储池条目来扩大存储空间。然后假定名为 logdbs 的 dbspace 用尽空闲页并要求额外的 500 MB 做新日志。如果 logdbs 中没有 chunk 可扩展,则 GBase 8s 添加一个 chunk,其大小的最小值是由 logdbs dbspace 的创建大小值指定的。如果 logdbs dbspace 的创建大小小于或等于 500 MB,则服务器尝试去找到一个最小 500 MB 的空间。如果 logdbs 的创建大小为 1 GB,则服务器忽略所需要的大小并添加一个 1 GB chunk。

如果服务器不能找到所要求的最小量空间,则服务器返回空间不足错误提示,且日志创建失败。

如果您将存储空间大小的最大值设置为非 0 值,则存储空间不可超过该大小的最大值,不管新的扩展大小。当在大小最大值之前留出的扩大空间量小于新的扩展大小时,截断该扩展大小并将空间扩展到大小的最大值。当空间达到大小的最大值时,触发事件报警 86001。当留出的扩大空间量小于存储池的 chunk 大小的最小值时,不扩大该空间并返回错误提示。

示例

下列命令将最小的创建大小设置为 60 MB,最小的扩展大小为 10 MB,且名为 dbspace3 的 dbspace 大小的最小值为 100 MB:

EXECUTE FUNCTION task("modify space sp_sizes", "dbspace3", "60000","10000", "100000");

下列命令将最小的创建大小设置为 20%,且名为 dbspace8 的 dbspace 的最小扩展大小为 1.5%:

EXECUTE FUNCTION task("modify space sp_sizes", "dbspace8", "20", "1.5");

onbar 参数:备份存储空间(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onbar 参数来备份存储空间。

语法

元素描述关键考虑
onbar backup执行存储空间的完全备份如果您未指定级别,则执行 0 级备份。
whole system执行全系统备份这个等同于从命令行发出带有 -w 选项的 onbar 命令。如果您未指定级别,则执行 0 级备份。
level level指定在存储空间上执行的备份级别:
● 0 代表完全备份。这是缺省值。
● 1 表示自从最后 0 级备份以来的更改
● 2 表示自从最后 1 级备份以来的更改
如果您需要增量备份且尚未执行特定存储空间的级别备份,则这个功能在先前的级别备份存储空间。
例如,如果您需要 1 级备份,且该函数发现无 0 级备份,则改为进行 0 级备份。
这等同于从命令行发出带有 -L level 选项的 onbar 命令。
logs执行逻辑日志文件的备份这等同于从命令行发出带有 -l 选项的 onbar 命令。

用法

这个函数等同于调用 onbar 命令的特定选项来创建存储空间和逻辑日志文件的备份。

示例

下列示例创建存储空间的 0 级备份:

EXECUTE FUNCTION task("onbar backup");

下列示例创建存储空间的 1 级备份:

EXECUTE FUNCTION task("onbar backup level 1");

下列示例创建逻辑日志文件的 1 级备份:

EXECUTE FUNCTION task("onbar backup logs");

下列示例创建存储空间的全系统 0 级备份:

EXECUTE FUNCTION task("onbar backup whole system");

下列示例创建存储空间的全系统 2 级备份:

EXECUTE FUNCTION task("onbar backup whole system level 2");

onmode 和 a 参数:添加共享内存段(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 a 参数来添加共享内存段。

语法

元素描述关键考虑
memory_size新的虚拟共享内存段的大小,以 KB 为单位。size 的值必须是正整数,不超过操作系统对共享内存段大小的限制。

用法

因为数据库服务器自动地添加所需要的段,所以您不需要添加段到共享内存的虚拟部分。然而,随着添加段,在得到需要的内存之前,数据库服务器可能达到操作系统对段的最大数目限制。当 SHMADD 配置参数设置较小以至于数据库服务器在得到某操作需要的内存之前就用尽了可用段的数目时,通常发生这种情况。

您可使用这个函数来添加段,这个段比 SHMADD 配置参数指定的大小更大。通过使用这个参数来添加段,您可遵守操作系统对段的限制,同时满足数据库服务器对更多内存的需要。

这个函数等同于 onmode -a 命令。

示例

下列示例添加 500 KB 虚拟共享内存:

EXECUTE FUNCTION task("onmode","a","500");

onmode 和 c 参数:强制检查点(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 c 参数来强制检查点。

语法

用法

这个函数强制检查点,清空缓冲区到磁盘。如果逻辑日志中的最近检查点阻止释放逻辑日志文件(状态 U-B-L),则您可使用 c 选项来强制检查点。

使用 block 参数来阻止数据库服务器处理任何事务。使用这个选项在 GBase 8s 上执行外部备份。 当数据库服务器被阻塞时,用户不可访问它,除了处于 read-only 模式。直到解除数据库服务器阻塞,事务才可完成。

使用 hard 参数来强制阻塞的检查点。这是缺省值。

使用 norm 参数来强制未阻塞的检查点。

使用 unblock 参数来解除数据库服务器阻塞。当解除数据库服务器阻塞时,数据事务和正常的数据库服务器操作可重新开始。请您在 GBase 8s 上完成外部备份之后使用这个选项。

这个函数等同于 onmode -c 命令。

示例

下列示例启动阻塞的检查点:

EXECUTE FUNCTION task("onmode","c","hard");

onmode 和 C 参数:控制 B-tree 扫描程序(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 C 参数来控制 B-tree 扫描程序清除已删除条目的索引。

语法

元素描述关键考虑
alice_mode系统的 alice 模式。从 0(OFF)至 12 范围内的有效整数值。
compression_level对于数据库服务器实例,两个部分地已使用索引页的合并级别。如果那些页上的数据总数达到设置的级别,则合并页。级别的有效值为 low、med(中级)、high 和 default。系统缺省值为 med。
dur_num热列表有效的秒数。这个秒数期满后,即使列表上有未处理的条目,也由下一个可用的 B-tree 扫描程序线程重建热列表。正在处理请求的扫描程序不中断。
range_size在启用索引范围清除之前索引的大小。可用大小 -1 来禁用范围扫描。
start_count要启动的 B-tree 扫描程序线程数。如未指定 start_count,则再启动一个线程。同时最多可启动 32 个线程。但是,同时运行的扫描程序线程数没有限制。
stop_count要停止的 B-tree 扫描程序线程数。如未指定 stop_count,则停止单个线程。停止所有索引扫描程序防止所有索引清除。
如果您指定一个比正在运行的线程数更大的 stop_count 值,则不发出错误提示,但是停止所有扫描程序线程。
thresh_size在索引置于热列表上之前,索引必须遇到的删除条目的最小数。在阈值之上的所有索引都已清除,且没有 B-tree 扫描程序要做的其他工作之后,阈值之下的索引被添加到热列表。

用法

B-tree 扫描程序有统计信息,追踪索引效率以及索引在服务器上增添了多少额外工作。根据因为提交的删除索引条目索引已经完成的额外工作量,B-tree 扫描程序开发一个导致服务器做额外工作的索引的排序列表,称为热列表。 首先清除索引导致的额外工作的最高量,并以递减的顺序清除剩余的索引。DBA 可动态地分配清除线程来配置工作负载。

这个函数等同于 onmode -C 命令。

示例

下列命令启动 60 个 B-tree 扫描程序线程:

EXECUTE FUNCTION admin("onmode","C","start","30");
EXECUTE FUNCTION admin("onmode","C","start","30");

下列命令停止所有这些线程:

EXECUTE FUNCTION admin("onmode","C","stop","30000");

当 stop_count 值大于正在运行的线程数时,不发出错误提示。

onmode 和 d 参数:设置数据复制类型(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 d 参数来更改服务器参与高可用性数据复制(HAC)的模式。

语法

元素描述关键考虑
database_server主或辅助数据库服务器的名称。dbserver 名称必须对应于预期的辅助数据库服务器在 sqlhosts 文件中的 dbservername 条目中指定的值。

用法

使用这个函数来设置“高可用性数据复制”类型为 standard、primary 或 secondary。当数据库服务器处于 quiescent、online 或 read-only 模式时,您可使用 standard 参数。

在共享内存重新初始化之后,保存数据复制对中其他数据库服务器的 dbserver 参数以及数据库服务器的类型(standard、primary 或 secondary)。

standard 参数删除数据复制对(如果存在的话)中数据库服务器之间的连接,并设置当前数据库服务器的数据库服务器类型为 standard。这个选项不更改数据复制对中其他数据库服务器的模式或类型。

primary 和 dbserver 参数设置数据库服务器类型为 primary,并试图与 dbserver 指定的数据库服务器连接。如果连接成功,则开启数据复制。主数据库服务器进入 online 模式,且辅助数据库服务器进入 read-only 模式。如果连接不成功,则数据库服务器进入 online 模式,但不开启数据复制。

secondary 和 dbserver 参数设置数据库服务器类型为 secondary,并试图与 dbserver 指定的数据库服务器连接。如果连接成功,则开启数据复制。主数据库服务器成为 online,且辅助数据库服务器进入 read-only 模式。如果连接不成功,则数据库服务器进入 read-only 模式,但不开启数据复制。

这个函数等同于 onmode -d 命令。

示例

下列示例设置名为 ids_stores 的服务器为 HAC 主服务器:

EXECUTE FUNCTION task("onmode","d","primary","ids_stores");

onmode 和 D 参数:设置 PDQ 优先级(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 D 参数来临时地重置数据库服务器可分配给任何一个决策支持查询的 PDQ 资源。

语法

元素描述关键考虑
max_priority实际分配给查询的用户请求的 PDQ 资源的百分率。该值必须是从 0 至 100 的无符号整数。

用法

当数据库服务器处于 online 时,使用这个函数来覆盖 MAX_PDQPRIORITY 配置参数设置的限制。新的值仅影响数据库服务器的当前实例;这些值不记录在 onconfig 文件中。 如果您关闭并重启数据库服务器,这些参数的值恢复为 onconfig 文件中的值。

这个函数等同于 onmode -D 命令。

示例

下列示例设置可分配给查询的 PDQ 资源的百分率为 50%:

EXECUTE FUNCTION task("onmode","D","50");

onmode 和 e 参数:更改 SQL 语句高速缓存的用法(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 e 参数来临时地更改 SQL 语句高速缓存的模式。

语法

用法

如果禁用了 SQL 语句高速缓存,则使用 enable 参数来启用它。仅在执行下列活动之后,单个用户会话可使用该语句高速缓存:

  • 设置环境变量 STMT_CACHE 为 1。
  • 执行 SQL 语句 SET STATEMENT CACHE ON。

使用 flush 参数来从 SQL 语句高速缓存清空不使用的语句,SQL 语句高速缓存保持启用。清空高速缓存之后,onstat -g ssc ref_cnt 域显示为 0。

使用 off 参数来关闭 SQL 语句高速缓存,以便不高速缓存语句。

使用 on 参数来高速缓存所有语句,除了那些用户通过下列活动之一关闭的之外:

  • 使用这个命令来指定 OFF 模式。
  • 设置环境变量 STMT_CACHE 为 0。
  • 执行 SQL 语句 SET STATEMENT CACHE OFF。

这个函数不可更改 ONCONFIG 文件中 STMT_CACHE 配置参数的设置,但最后的参数覆盖那个设置(或如果未设置 STMT_CACHE,则为缺省值)。您以这个命令进行的任何语句高速缓存行为的变更都仅影响当前数据库服务器会话。 当您重启数据库服务器时,数据库服务器使用 ONCONFIG 文件中 STMT_CACHE 参数的设置。如果在 ONCONFIG 文件中未定义 STMT_CACHE 配置参数,则服务器不使用语句高速缓存。

这个函数等同于 onmode -e 命令。

示例

下列示例启用 SQL 语句高速缓存:

EXECUTE FUNCTION task("onmode","e","enable");

onmode 和 F 参数:释放不用的内存段(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 F 参数来释放不用的内存段。

语法

用法

当您执行这个函数时,内存管理器检测不用的内存的每一内存池。内存管理器立即释放定位的不用的内存块。内存管理器检查每一内存池之后,它开始检查内存段并释放数据库服务器不再需要的任何内存段。

当您执行该使用程序时,运行这个命令对任何用户都会导致重大的性能降级。虽然执行时间短暂(1 至 2 秒),但对单用户数据库服务器的降级可达 100%。有多个 CPU 虚拟处理器的系统感觉降级会成比例地减轻。

要确认不用的内存已释放,请检查消息日志。如果内存管理器释放一个或多个段,它显示消息表明释放了多少个段以及多少内存字节。

提示

请从操作系统日程安排工具有规律地运行这个命令,并在数据库服务器执行任何创建更多的内存段的函数,包括构建大索引、排序或备份之后,运行这个命令。

这个函数等同于 onmode -F 命令。

示例

下列示例释放不用的内存块:

EXECUTE FUNCTION task("onmode","F");

onmode 和 j 参数:切换数据库服务器到管理员模式(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 j 参数来更改数据库服务器为管理员模式。

语法

用法

当服务器变更到管理员模式时,除了下列用户的会话之外,所有会话失去到数据库服务器的连接:

  • 用户 gbasedbt
  • DBSA 组中的用户
  • ADMIN_MODE_USERS 设置中标识的用户

这个函数等同于 onmode -j 命令。

示例

下列示例变更服务器到管理员模式:

EXECUTE FUNCTION task("onmode","j");

onmode 和 l 参数:切换到下一个逻辑日志(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 l 参数来从当前逻辑日志文件切换到下一个逻辑日志文件。

语法

用法

这个函数等同于 onmode -l 命令。

示例

下列示例将逻辑日志移出 root chunk:

SELECT task("onmode", "l") FROM sysmaster:syslogfil
WHERE chunk = 1 AND sysmaster:bitval(flags,"0x02")>0;

onmode 和 m 参数:切换到多用户模式(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 m 参数来更改数据库服务器到多用户模式。

语法

用法

使用这个函数来使数据库服务器从 quiescent 模式或从管理员模式改为 online。

这个函数等同于 onmode -m 命令。

示例

系列示例更改服务器到多用户模式:

EXECUTE FUNCTION task("onmode","m");

onmode 和 M 参数:临时地更改决策支持内存(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 M 参数来临时地更改并行查询的可用内存的大小。

语法

元素描述关键考虑
memory_size并行查询可用的内存最大量的新大小限制(以 KB 为单位)。32 位平台的最大值是 2 GB。 64 位平台的最大值是 4 GB。

用法

在数据库服务器处于 online 时,使用这个函数来覆盖 DS_TOTAL_MEMORY 配置参数设置的限制。新的值仅影响数据库服务器的当前实例;这些值不记录在 ONCONFIG 文件中。 如果您关闭并重启数据库服务器,则参数的值恢复为 ONCONFIG 文件中的值。

这个函数等同于 onmode -M 命令。

示例

下列示例设置并行查询的大小限制为 50 MB:

EXECUTE FUNCTION task("onmode","M","50000");

onmode 和 n 参数:解锁驻留内存(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 n 参数来终结共享内存驻留部分的强制驻留。

语法

用法

在您可运行这个函数之前,RESIDENT 配置参数必须在 ONCONFIG 文件中设置为 1。

这个函数不影响 ONCONFIG 文件中 RESIDENT 配置参数、forced-residency 参数的值。

这个函数等同于 onmode -n 命令。

示例

下列示例解锁驻留内存:

EXECUTE FUNCTION task("onmode","n");

onmode 和 O 参数:标记禁用的 dbspace 为 down(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 O 参数来标记禁用的 dbspace 为 down,以便禁用的 dbspace 正阻塞的检查点可继续且释放任何被阻塞的线程。

语法

用法

这个函数覆盖 ONDBSPACEDOWN 配置参数的 WAIT 模式。仅在下列情况下使用这个命令:

  • ONDBSPACEDOWN 设置为 WAIT。
  • 发生禁用的 I/O 错误,导致数据库服务器阻塞所有正在更新的线程。
  • 你不可或不想纠正导致禁用的 I/O 错误的问题。
  • 您想要数据库服务器标记禁用的 dbspace 为 down 并继续处理。

这个函数等同于 onmode -O 命令。

示例

下列示例标记禁用的 dbspaces 为 down:

EXECUTE FUNCTION task("onmode","O");

onmode 和 p 参数:添加或移除虚拟处理器(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 p 参数来动态地为当前数据库服务器会话添加或移除虚拟处理器。这个函数不更新 onconfig 文件。

语法

元素描述关键考虑
number要添加或移除的虚拟处理器的数目。正的数目添加虚拟处理器。您可添加的虚拟处理器的最大数目依赖于操作系统。
UNIX™:负的数目移除虚拟处理器。要删除的虚拟处理器数不可超过指定类型的处理器的实际数目。
vpclass用户定义的虚拟处理器类的名称。

用法

仅当数据库服务器处于 online 模式时,您才可使用这个函数。

CPU VP 的数目不应超过您的系统上物理处理器的数目,但如果超过了也不报错。数据库服务器使用 CPU VP 的数目来为并行数据库查询(PDQ)分配资源。 如果您删除 CPU VP,则您的查询可能运行得明显变慢。在您更改 CPU VP 的数目之后,从命令 onstat -g mgm 输出中的 Reinit 域显示有多少查询正在等待其他查询完成。

要了解每一虚拟处理器类的描述,请参阅 GBase 8s 管理员指南。

这个函数等同于 onmode -p 命令。

示例

下列示例添加一个 CPU 虚拟处理器:

EXECUTE FUNCTION task("onmode","p","1","cpu");

下列示例移除一个 Java™ 虚拟处理器:

EXECUTE FUNCTION task("onmode","p","-1","jvp");

仅限于 UNIX™

onmode 和 Q 参数:设置决策支持查询的最大数目(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 Q 参数来更改当前正在执行的决策支持查询的最大数目。

语法

元素描述关键考虑
queries当前正在执行的并行查询的最大数目。该数目必须是从 1 至 8,388,608 的无符号整数。

用法

当数据库服务器处于 online 时,使用这个函数来覆盖 DS_MAX_QUERIES 配置参数设置的限制。新的值仅影响数据库服务器的当前实例;这些值不记录在 ONCONFIG 文件中。如果您关闭并重启数据库服务器,则该参数的值恢复为 ONCONFIG 文件中的值。

这个函数等同于 onmode -Q 命令。

示例

下列示例设置当前正在执行的并行查询的最大数目为 8:

EXECUTE FUNCTION task("onmode","Q","8");

onmode 和 r 参数:强制共享内存的驻留(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 r 参数来启动共享内存的驻留部分的强制驻留。

语法

用法

在您可运行这个函数之前,RESIDENT 配置参数必须在 ONCONFIG 文件中设置为 1。

这个函数不影响 ONCONFIG 文件中 RESIDENT 配置参数、forced-memory 参数的值。

这个函数等同于 onmode -r 命令。

示例

下列示例启动共享内存的强制驻留:

EXECUTE FUNCTION task("onmode","r");

onmode 和 S 参数:设置决策支持扫描的最大数目(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 S 参数来更改当前正在执行的当期会话决策支持扫描的最大数目。

语法

元素描述关键考虑
scans当前正在执行的并行扫描的最大数目。该数目必须是从 10 至 1 048 576 的无符号整数。

用法

在数据库服务器处于 online 时,使用这个函数来覆盖 DS_MAX_SCANS 配置参数设置的限制。新的值仅影响数据库服务器的当前实例;这些值不记录在 ONCONFIG 文件中。如果您关闭并重启数据库服务器,则该参数的值恢复为 ONCONFIG 文件中的值。

这个函数等同于 onmode -S 命令。

示例

下列示例设置当前正在执行的并行扫描的最大数目为 2000:

EXECUTE FUNCTION task("onmode","S","2000");

onmode 和 W 参数:重置语句高速缓存属性(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 W 参数来更改语句是否以及何时可插入到 SQL 高速缓存。

语法

元素描述关键考虑
hits在语句完全地插入到 SQL 语句高速缓冲之前,命中(引用)语句的数目。可能的值为:
● 0 = 在高速缓存中插入所有满足条件的语句及其内存结构。
● 1 或更大 = 排除 ad hoc 查询进入该高速缓存。
value语句是否插入到 SQL 语句高速缓存中。可能的值为:
● 0 = 数据库服务器不插入语句到高速缓存内。
● 1 = 数据库服务器总是在高速缓存中插入语句。

用法

在数据库服务器处于 online 时,使用这个函数来重置 STMT_CACHE_HITS 或 STMT_CACHE_NOLIMIT 配置参数的值。新的值仅影响数据库服务器的当前实例;该值不记录在 ONCONFIG 文件中。如果您关闭并重启数据库服务器,则参数的值恢复为 ONCONFIG 文件中的值。

如果您设置 STMT_CACHE_HITS 的值等于 0,则数据库服务器在该高速缓存中插入所有满足条件的语句及其内存结构。如果该值大于 0 且 SQL 语句已被执行的次数小于 STMT_CACHE_HITS 的值,则数据库服务器在高速缓存中插入 key-only 条目。在语句已经发生指定的命中数之后,数据库服务器在高速缓存中插入满足条件的语句。新的 STMT_CACHE_HITS 值显示在 onstat -g ssc 输出的 #hits 域中。

如果未分享任何查询,则设置 STMT_CACHE_NOLIMIT 为 0 来阻止数据库服务器为语句高速缓存分配大量内存。

这个函数等同于 onmode -W 命令。

示例

下列示例阻止 ad hoc 查询进入 SQL 语句高速缓存:

EXECUTE FUNCTION task("onmode","W","STMT_CACHE_HITS","1");

onmode 和 wf 参数:永久地更新配置参数(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 wf 参数来动态地更新 onconfig 文件中配置参数的值。

语法

元素描述关键考虑
configuration_parameter_name配置参数的名称。该配置参数必须是您可动态地更新的。 您可动态地更新的配置参数列表与 onmode -wf 命令的相同。
new_value配置参数的一个或多个新值。该值对于配置参数必须是有效的。 新值的格式必须严格地遵循那个配置参数的语法。

用法

使用这个函数来永久地更新配置参数的值。新的值立即生效并在服务器重新启动之后保存在 ONCONFIG 文件中。

这个函数等同于 onmode -wf 命令。

示例

下列示例设置 onconfig 文件中 DYNAMIC_LOGS 配置参数的值为 2:

EXECUTE FUNCTION task("onmode","wf","DYNAMIC_LOGS=2");

onmode 和 wm 参数:临时地更新配置参数(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 wm 参数来动态地更新内存中配置参数的值。

语法

元素描述关键考虑
configuration_parameter_name配置参数的名称。您指定的配置参数必须是您可动态地更新的。
您可动态地更新的配置参数列表与 onmode -wf 命令的相同。
new_value配置参数的一个或多个新值。该值对于配置参数必须是有效的。 新值的格式必须严格地遵循那个配置参数的语法。

用法

使用这个函数来临时地更新您可动态地更新的配置参数的值。新值立即生效。新的值不写到 ONCONFIG 文件且当数据库服务器重启时丢失。

这个函数等同于 onmode -wm 命令。

示例

下列示例为当前会话设置 DYNAMIC_LOGS 配置参数的值为 2:

EXECUTE FUNCTION task("onmode","wm","DYNAMIC_LOGS=2");

onmode、wm 和 AUTO_LRU_TUNING 参数:更改 LRU 调整状态(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode、wm 和 AUTO_LRU_TUNING 参数来更改 LRU 调整状态而不更新 onconfig 文件。

语法

用法

使用 AUTO_LRU_TUNING=1 参数来启用自动的 LRU 调整。

使用 AUTO_LRU_TUNING=0 参数来禁用自动的 LRU 调整。

这个函数等同于 onmode -wm AUTO_LRU_TUNING 命令。

示例

下列示例启用自动的 LRU 调整:

EXECUTE FUNCTION task("onmode","wm","AUTO_LRU_TUNING=1");

onmode 和 Y 参数:更改会话的查询计划度量(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 Y 参数来更改对个别会话查询计划度量的输出。

语法

元素描述关键考虑
file_name说明输出文件名。如果未包括该文件的绝对路径,则在缺省示例输出文件位置中创建示例输出文件。如果文件已经存在,说明输出附加到该文件。如果从 SET EXPLAIN 语句已经存在一个文件,则不再使用那个文件直到关闭动态的说明。
session_id标识特定的会话。无。
-Y动态地更改 SET EXPLAIN 语句的值。无。

用法

您可使用这个函数来与 SET EXPLAIN 语句竞争。

最后的参数确定是否记录查询度量,包括查询优化器的计划、对返回行数的估计以及查询的相对成本。

使用 2 参数来使得数据库服务器能发送查询计划到说明输出文件。

使用 1 参数来使得数据库服务器能发送查询计划和统计到说明输出文件。这个设置等同于特定会话的 SET EXPLAIN ON 语句。

使用 0 参数来使得查询度量不能输出到当前会话的说明输出文件。这个设置等同于 SET EXPLAIN OFF 语句。

这个函数等同于 onmode -Y 命令。

示例

下列示例使得 ID 为 32 的用户会话不能输出查询度量:

EXECUTE FUNCTION task("onmode","Y","32","0");

onmode 和 z 参数:终止用户会话(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 z 参数来终止指定的用户会话。

语法

元素描述关键考虑
session_id会话 ID。该值必须为大于 0 的无符号整数,且必须为当前正在运行的会话的会话标识号。

用法

这个函数等同于 onmode -z 命令。

示例

下列示例终止 ID 为 14 的用户会话:

EXECUTE FUNCTION task("onmode","z","14");

onmode 和 Z 参数:终止分布式事务(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onmode 和 Z 参数来终止指定的分布式事务。仅当参与的数据库服务器之间已失去通信才使用这个函数。 如果应用正在执行分布式事务,则终止分布式事务之一可令客户端/服务器数据库系统处于不一致的状态。

语法

元素描述关键考虑
address与分布式事务相关联的共享内存地址。这必须是正在进行的分布式事务的地址,该事务已超过了 TXTIMEOUT 配置参数指定的时间量。
address 必须符合特定操作系统对共享内存寻址的规则。这个地址可从 onstat -x 输出获取。

用法

仅当该分布式事务已超过了 TXTIMEOUT 配置参数指定的时间量,这个函数才会成功。

这个函数等同于 onmode -Z 命令。

示例

下列示例终止地址为 0xa509018 的分布式事务:

EXECUTE FUNCTION task("onmode","Z","0xa509018");

onsmsync 参数:与存储管理器目录同步(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onsmsync 参数来将 sysutils 数据库和紧急 boot 文件与存储管理器目录同步。

语法

元素描述关键考虑
无选项sysutils 数据库和紧急 boot 文件与存储管理器目录同步。无。
-b从彼此重新生成紧急 boot 文件(ixbar.servernum)和 sysutils 数据库。如果 ixbar 文件为空或不存在,则 onsmsync -b 重新创建 ixbar 文件并从 syutils 表填入它。
如果 ixbar 不为空且包含对象数据,则 onsmsync -b 更新 sysutils 数据库和 ixbar 文件,以便它们同步。
如果 ixbar 文件有条目且 sysutils 数据库已重构,但因为它不包含文件而为空,则 onsmsync
-b 选项重新从 ixbar 创建 sysutils 数据。 -b 元素不与其他 onsmsync 选项一起使用。另外,它不与存储管理器同步。
dbspace指定一个或多个要终止的存储空间如果您输入多于一个存储空间,则请使用空格来分隔名称。
-f file_name指定包含要终止的存储空间列表的文件的路径名使用这个选项来避免键入一个存储空间的长列表。文件名可为任何有效的 UNIX™ 文件名。
-g number_of_generations保留每一 0 级备份的一定数目的版本保留备份的最近一版,且终止所有的较早版本。
-i interval终止早于某些时间期间的所有备份保留晚于这个间隔的备份。如果需要从那个间隔之后的其他备份恢复,则不终止早于间隔的备份。使用 interval 的 ANSI 或 GLS 格式:YYYY-MM 或 DD HH:MM:SS
-s跳过存储管理器已终止的备份使用这个选项来跳过与那些从存储管理器已经终止的对象的同步。如果提供 -s 选项,则会根据其他的参数终止对象。
-O严格地实施终止策略如果随同 -t、-g 或 -i 选项一起使用,则终止所有级别的备份,即使其中的一些需要从终止日期之后发生的备份来恢复。-O 选项不影响逻辑日志终止。
-t date_time终止特定时间和日期之前的所有备份保留晚于这个 datetime 的备份。如需要从晚于那个 datetime 的其他备份来恢复,则不终止早于 datetime 的备份。请使用 datetime 的 ANSI 或 GLS_DATETIME 格式。

用法

这个函数调用 onsmsync 命令来将 sysutils 数据库和紧急 boot 文件与存储管理器目录同步。

示例

下列示例调用 onsmsync 命令并指定保留的备份数目为 1 且终止所有较早的备份版本:

EXECUTE FUNCTION task("onsmsync", "-g 1");

onstat 参数:监视数据库服务器(SQL 管理 API)

随同 admin() 或 task() 函数,使用 onstat 参数来监视数据库服务器。

语法

元素描述关键考虑
option_nameonstat 命令选项。该选项必须包括一连字符且符合 onstat 选项语法。要了解 onstat 选项,请参阅 onstat 命令

用法

使用这些命令来显示与运行 onstat 命令命令相同的关于数据库服务器的信息。

示例

下列示例运行 onstat -g ses 命令:

EXECUTE FUNCTION task("onstat","-g ses");

ontape archive 参数:备份数据库上的数据(SQL 管理 API)

随同 admin() 或 task() 函数,使用 ontape archive 参数来创建数据库数据的备份。

语法

元素描述关键考虑
level有效的级别为:0、1 或 2。缺省值为 0。
location到文件或目录或磁带设备的路径
block_size在存储空间备份期间,ontape 写到的设备的块大小缺省块大小为 512 KB。

用法

这个函数调用 ontape 命令来创建备份。

从备份的位置您有三种设备可选:

  • 目录或 dir

现有的目录路径。缺省的备份设备。

  • file

现有的文件。

  • tape

现有的磁带设备。

示例

这个函数在目录路径 /local/gbasedbt/backup/ 中创建 0 级归档:

EXECUTE FUNCTION task("ontape archive","/local/gbasedbt/backup/");

这个函数在目录路径 /local/gbasedbt/backup/ 中创建 0 级归档,块大小为 256 KB:

EXECUTE FUNCTION task("ontape archive directory level 0","/local/gbasedbt/backup/","256");

随同 admin() 或 task() 函数,使用 print error 参数来打印与指定的错误号相关联的消息。

语法

元素描述关键考虑
error_number错误号,无减号。error_number 必须是现有的错误号。

用法

这个函数等同于 finderr 命令。

示例

下列示例打印错误号 -105 的消息文本:

EXECUTE FUNCTION task("print error","105");
(expression) ISAM error: bad isam file format.

随同 admin() 或 task() 函数,使用 print file info 参数来显示关于目录或文件的信息。

语法

元素描述关键考虑
file_path到目录或文件的路径

示例:文件信息

下列示例显示您要用来打印关于 /tmp 目录中 x 文件的信息的参数:

execute function task("print file info","/tmp/x"):

返回下列信息:

(expression)  File name             = /tmp/x
Is File = 1
Is Directory = 0
Is Raw Device = 0
Is Block Device = 0
Is Pipe = 0
File Size = 554
Last Access Time = 11/29/2010 21:55:02
Last Modified Time = 11/29/2010 21:51:45
Status Change Time = 11/29/2010 21:51:45
User Id = 200
Group id = 102
File Flags = 33206

示例:目录信息

下列示例显示您要用来打印关于 /tmp 目录的信息的参数:

execute function task("print file info","/tmp"):

返回下列信息:

随同 admin() 或 task() 函数,使用 print partition 参数来打印指定分区的头部。

语法

元素描述关键考虑
partition_number分区号。请在 systables 系统目录表的 partnum 列中找到分区号。

用法

使用这个函数来打印指定分区的 tblspace 报告。

运行带有 full 参数的这个函数来包括按 dbspace 的页类型排列的特定索引信息和页分配信息。

带有 print partition 参数的这个函数等同于 oncheck -pt 命令。

带有 print partition full 参数的这个函数等同于 oncheck -pT 命令。

示例

下列示例打印 1048611 号分区的头部:

EXECUTE FUNCTION task("print partition","1048611");

rename space 参数:重命名存储空间(SQL 管理 API)

随同 admin() 或 task() 函数,使用 rename space 参数来重命名 dbspace、blobspace、sbspace 或 extspace。

语法

元素描述关键考虑
new_name空间的新名称。
space_name您想要重重名的 dbspace、blobspace、sbspace 或 extspace 的名称。

用法

这个函数等同于 onspaces -ren 命令。

示例

下列示例将名为 dbsp1 的 dbspace 重命名为 dbsp2:

EXECUTE FUNCTION task("rename space","dbsp1","dbsp2");

reset config 参数:恢复配置参数值(SQL 管理 API)

随同 admin() 或 task() 函数,使用 reset config 参数来将动态地可更新的配置参数值恢复为 onconfig 文件中的值。动态地可更新的配置参数是您可用 onmode 或 SQL 管理 API 命令为会话变更的那些参数。

语法

元素描述关键考虑
configuration_parameter_name您想要恢复其值的配置参数的名称。

用法

reset config 参数将配置参数的值恢复为 onconfig 文件中最后保存的值,即使在数据库服务器启动之后更改了该值。

示例

下列命令将 DYNAMIC_LOGS 配置参数的值恢复为 onconfig 文件中的值。

EXECUTE FUNCTION task("reset config","DYNAMIC_LOGS");

reset config all 参数:恢复所有动态地可更新的配置参数值(SQL 管理 API)

随同 admin() 或 task() 函数,使用 reset config all 参数来将所有动态地可更新的配置参数的值恢复到 onconfig 文件中的值。动态地可更新的配置参数是您可以 onmode 或 SQL 管理 API 命令为会话更改的那些参数。

语法

用法

reset config all 参数将所有动态地可更新的配置参数的值恢复为 onconfig 文件中最后保存的值,即使在数据库服务器启动之后更改了这些值。

示例

下列命令恢复所有动态地可调整的配置参数的值。

EXECUTE FUNCTION task("reset config all");

reset sysadmin 参数:移动 sysadmin 数据库(SQL 管理 API)

随同 admin() 或 task() 函数,使用 reset sysadmin 参数来将 sysadmin 数据库移到指定的 dbspace。移动 sysadmin 数据库将该数据库重置回到首次创建它时的原始状态;所有数据、 command history 和结果表都会丢失。仅内建任务、传感器和阈值保留在 sysadmin 表中。

语法

元素描述关键考虑
dbspacedbspace 的名称。

用法

这个函数没有等同的命令命令。

如果您未指定 dbspace 作为最后的参数,则这个命令删除 sysadmin 数据库,然后在 rootdbs 中重新创建它。删除所有 ph_* 表和 command_history 行,并删除所有结果表。

示例

下列示例删除现有的 sysadmin 数据库并在名为 dbsp1 的 dbspace 内创建新的 sysadmin 数据库:

EXECUTE FUNCTION task("reset sysadmin","dbs1");

下一个示例删除 sysadmin 数据库,然后在 rootdbs 中重新创建它。

EXECUTE FUNCTION admin("reset sysadmin");

除了内建任务、传感器和阈值之外,从 ph_ 表中删除所有数据行,通过这个函数调用从 sysadmin 删除所有结果表。该函数执行完成之后,command_history 表为空。

restart listen 参数:动态地停止并启动监听线程(SQL 管理 API)

随同 admin() 或 task() 函数,使用 restart listen 参数来停止然后启动现有的 SOCTCP 或 TLITCP 网络协议的监听线程,而不中断现有的连接。

语法

元素描述关键考虑
server_name您想要停止并重启监听线程的数据库服务器的名称。

用法

必须在 sqlhosts 文件中存在监听线程的定义。

如有必要,在您重启监听线程之前,请修订 sqlhosts 条目。例如,如果正在运行的监听线程一定为端口 7777,则您可更改 sqlhosts 文件中的端口,然后重启该线程。

这个函数等同于 onmode -P restart server_name 命令。

这个函数不更新 sqlhosts 文件。

示例

下列命令停止并再启动名为 ids_serv1 服务器的监听线程:

EXECUTE FUNCTION task("restart listen","ids_serv1");

revoke admin 参数:撤销运行 SQL 管理 API 命令的权限

随同 admin() 或 task() 函数,使用 revoke admin 参数来撤销运行 SQL 管理 API 命令的权限。

语法

元素描述关键考虑
user_name要取消其权限的用户名。
privilege_group权限组名。请参阅 SQL 管理 API 门户:按权限组划分参数 查看权限组的列表。

用法

仅用户 gbasedbt 或者对于 SQL 管理 API 命令有 ADMIN 或 GRANT 权限的用户,可使用 revoke admin 参数。

使用 revoke admin 参数来撤销个别用户运行 SQL 管理 API 命令的权限。您可撤销特定权限组的权限,或撤销所有权限。

示例

下列命令撤销用户 Bob 运行备份和恢复 SQL 管理命令的权限:

EXECUTE FUNCTION task("revoke admin", "Bob", "BAR");

下列命令撤销用户 Bob 运行任何 SQL 管理命令的所有权限:

EXECUTE FUNCTION task("revoke admin", "Bob");

scheduler 参数:停止或启动调度程序(SQL 管理 API)

随同 admin() 或 task() 函数,使用 scheduler 参数来启动或停止调度程序。

语法

用法

使用 scheduler shutdown 参数来停止调度程序并重新分配它的资源。

使用 scheduler start 参数来启动调度程序。

这个函数没有等同的命令命令。

您可用 onstat -g dbc 命令查看调度线程的状态。

示例

在调度程序已关闭之后,下列示例启动调度程序:

EXECUTE FUNCTION task("scheduler start");

scheduler lmm enable 参数:指定自动的低内存管理设置(SQL 管理 API)

随同 admin() 或 task() 函数,使用 scheduler lmm enable 参数来启动自动的低内存管理并更新低内存阈值设置。

语法

元素描述关键考虑
start_threshold_size您想要数据库服务器保持的空闲内存量。如果内存量少于 start_threshold_size,则服务器自动地释放内存并终止应用。该值可表示为 SHMTOTAL 配置参数值的百分率或特定数量。如果该值小于 50,则认为是百分率。输入参数的结果值必须大于 5 MB 且小于 95 MB。
缺省值为 5 MB。
在 LMM START THRESHOLD 与 LMM STOP THRESHOLD 之间必须至少差 5 MB
stop_threshold_size在服务器停止自动释放内存和终止应用之前,您想要数据库服务器拥有的空闲内存量。该值可表示为 SHMTOTAL 配置参数值的百分率或特定数量。如果该值小于 50,则认为是百分率。输入参数的结果值必须大于 10 MB 且小于 100 MB。该值还必须至少比 LMM START THRESHOLD 多 5 MB。
缺省值为 10 MB。
minimum_amount_of_time定义会话为空闲的时间量,以秒为单位该值必须在 1 与 86400 之间。
缺省值为 300 秒。

用法

随同 admin() 或 task() 函数,您使用 scheduler lmm disable 参数来在主数据库服务器或标准数据库服务器中停止当前和后续的低内存管理进程。 当触发低内存管理时,数据库服务器按下列顺序执行这些任务:

  1. 数据库服务器终止会话,从会话有最大的空闲时间量开始一次启动一个,如有必要继续到会话有最小空闲时间量,时间量超过 LMM IDLE TIME 设置中指定的数量。当达到 LMM STOP THRESHOLD 时,服务器停止终止会话。
  2. 数据库服务器终止会话,从使用最多内存的会话开始,如有必要继续到使用最小内存量的会话,直到达到 LMM STOP THRESHOLD。
  3. 通过设置 VP_MEMORY_CACHE 配置参数为 0,数据库服务器执行内存重新配置,并运行 onmode -F 命令来释放不用的共享内存段。

当低内存管理操作完成时,通过将 VP_MEMORY_CACHE 配置参数设置回其原始值,低内存管理器返回到监视模式并恢复数据库服务器的内存配置。

数据库服务器在 ph_threshold 表中存储自动低内存管理设置。

您可用 onstat -g lmm 命令查看低内存管理设置和近期的活动。

注意

如果您启用自动的低内存管理并配置数据库服务器来使用 SHMTOTAL 配置参数指定值的百分率作为启动和停止阈值,则当更改 SHMTOTAL 配置参数值时请使用警告。更改 SHMTOTAL 配置参数值可导致自动低内存管理的配置变得无效,强制 GBase 8s 使用缺省设置。

设置低内存管理阈值设置的示例

下列示例指定当数据库服务器有 10 MB 或更少的空闲内存时,服务器会启动自动低内存管理停止应用并释放内存。该示例还指定如果会话尚未运行 300 秒则认为会话空闲,该示例指定当服务器有 20 MB 或更多空闲内存时会停止自动低内存管理。

EXECUTE FUNCTION task("scheduler lmm enable",
"LMM START THRESHOLD", "10MB",
"LMM STOP THRESHOLD", "20MB",
"LMM IDLE TIME", "300");

SHMTOTAL 配置参数影响低内存管理阈值设置的示例

假定您设置 SHMTOTAL 配置参数为 1000000(1000 MB 或 1 GB),LMM START THRESHOLD 为 2,且 LMM STOP THRESHOLD 为 3。因为任何小于 50 的值都是 SHMTOTAL 值的百分率,所以实际的 LMM START THRESHOLD 为 20000(20 MB)且实际的 LMM STOP THRESHOLD 为 30000(30 MB)。

当剩余空闲内存为 20 MB 或更少时,数据库服务器开始管理低内存,且当空闲内存量为 30 MB 或更多时,停止管理内存。

假定您决定更改 SHMTOTAL 配置参数的值,因为您知道现在不需要这么多内存,您想要让操作系统使用内存。请您设置 SHMTOTAL 的值为 250000(250 MB)。这更改实际的 LMM START THRESHOLD 为 5000(5 MB),实际的 LMM STOP THRESHOLD 为 7500(7.5 MB)。LMM STOP THRESHOLD 现在无效,因为 LMM START THRESHOLD 与 LMM STOP THRESHOLD 值之间必须至少差 5 MB。LMM STOP THRESHOLD 值还必须至少为 10 MB。

对于您的系统,你可能已经决定差 10 MB 是正确的数量。但是差 5 MB,数据库服务器可能会在低内存管理进程上花费太多的时间,这可能导致性能问题。

scheduler lmm disable 参数:停止自动的低内存管理(SQL 管理 API)

随同 admin() 或 task() 函数,使用 scheduler lmm disable 参数来停止当前和后续的自动低内存管理调用。

语法

用法

如果启用自动的低内存管理,则您可通过下列指定禁用它:

EXECUTE FUNCTION task("scheduler lmm disable");

请您随同 admin() 或 task() 函数,使用 scheduler lmm enable 参数来启动自动的低内存管理并更新阈值设置。

用 onstat -g lmm 命令,您可查看关于自动低内存管理设置的信息以及近期活动。

set chunk 参数:更改 chunk 的状态(SQL 管理 API)

随同 admin() 或 task() 函数,使用 set chunk 参数来更改 blobspace、dbspace 或 sbspace 的状态为 online 或 offline。

语法

元素描述关键考虑
space_nameblobspace、dbspace 或 sbspace 的名称。
path_namechunk 的磁盘分区或无缓冲的设备。
offset磁盘分区或无缓冲的设备内达到 chunk 的偏移量,以 KB 为单位。请参阅 admin() 和 task() 参数大小规范

用法

该 chunk 必须在镜像对中,或必须是非关键 dbspace 内的非主 chunk。

使用 set chunk offline 参数来更改 chunk 的状态为 offline。

使用 set chunk online 参数来更改 chunk 的状态为 online。

这个函数等同于 onspaces -s 命令。

示例

下列示例更改 chunk 的状态为 online:

set dataskip 参数:启动或停止跳过 dbspace(SQL 管理 API)

随同 admin() 或 task() 函数,使用 set dataskip 参数来指定数据库服务器在处理事务期间是否跳过不可用的 dbspace。

语法

元素描述关键考虑
dbspace要开始或要停止跳过的 dbspace 名。

用法

运行这个函数来更新 DATASKIP 配置参数的值,指定数据库服务器在处理事务的过程中是否跳过不可用的 dbspace(例如,由于介质故障)。

当指定的 dbspace 停止工作时,使用 set dataskip on 参数来开始跳过它。

使用 set dataskip off 参数来停止跳过指定的 dbspace。

这个函数等同于 onspaces -f 命令。

示例

如果名为 dbsp1 的 dbspace 停止工作,则下列示例跳过它:

EXECUTE FUNCTION task("set dataskip on","dbsp1");

set index compression 参数:更改索引页压缩(SQL 管理 API)

随同 admin() 或 task() 函数,使用 set index compression 参数来更改合并两个部分地使用的索引页的级别。

语法

元素描述关键考虑
partition_number分区号。请在 systables 系统目录表的 partnum 列中找到该分区号。

用法

请使用这个函数来调整索引页压缩。如果在那些页上的数据合计到设置的级别,则合并这些页。如果您的索引快速地增长,要优化空间和事务处理,则可降低压缩级别。如果您的索引有很少的删除和插入操作或如果执行批量更新,则可提高级别。

如果您预计索引会以频繁的分裂快速地增长,则请使用 low 参数。

如果索引的增长或更改适中,则请使用 med 或 default 参数。

如果索引 90% 或更多为 read-only,或者有许多更改,则请使用 high 参数。

这个函数等同于 onmode -C 命令以及 BTSCANNER 配置参数的 compression 选项。

示例

下列示例设置分区的索引压缩为 high:

EXECUTE FUNCTION task("set index compression","1048611","high");

set onconfig memory 参数:临时地更改配置参数(SQL 管理 API)

随同 admin() 或 task() 函数,使用 set onconfig memory 参数来动态地更新内存中配置参数的值。

语法

元素描述关键考虑
configuration_parameter_name配置参数的名称。该配置参数必须是您可动态地更新的。 您可动态地更新的配置参数列表与 onmode -wf 命令的相同。
new_value该配置参数的一个或多个新的值。该配置参数的这个或这些新的值必须是有效的。 新值的格式必须严格地遵循那个配置参数的语法。

用法

使用这个函数来临时地更新可动态地更新的配置参数的值。新的值立即生效。新的值不写到 onconfig 文件,当数据库服务器重启时,新的值丢失。

这个函数等同于 onmode -wm 命令。

示例

下列示例为当前会话设置 DYNAMIC_LOGS 配置参数的值为 2:

EXECUTE FUNCTION task("set onconfig memory","DYNAMIC_LOGS","2");

set onconfig permanent 参数:永久地更改配置参数(SQL 管理 API)

随同 admin() 或 task() 函数,使用 set onconfig permanent 参数来动态地更新 onconfig 文件中的配置参数值。

语法

元素描述关键考虑
configuration_parameter_name配置参数的名称。该配置参数必须是您可动态地更新的。 您可动态地更新的配置参数列表与 onmode -wf 命令的相同。
new_value配置参数的一个或多个新的值。这个或这些新的配置参数值必须是有效的。 新值的格式必须严格地遵循那个配置参数的语法。

用法

使用这个函数来永久地更新配置参数的值。新的值立即生效并在服务器重启之后保存在 onconfig 文件中。

这个函数等同于 onmode -wf 命令。

示例

下列示例在 onconfig 文件中设置 DYNAMIC_LOGS 配置参数的值为 2:

EXECUTE FUNCTION task("set onconfig permanent","DYNAMIC_LOGS","2");

set sbspace accesstime 参数:控制访问次数跟踪(SQL 管理 API)

随同 admin() 或 task() 函数,使用 set sbspace accesstime 参数来启动或停止跟踪存储在该 sbspace 中所有智能大对象的访问次数。

语法

元素描述关键考虑
sbspacesbspace 的名称。

用法

使用 set sbspace accesstime off 参数来关闭访问次数的跟踪。

使用 set sbspace accesstime on 参数来开启跟踪在该 sbspace 中的所有智能大对象的访问次数。

这个函数等同于 onspaces -ch 命令。

示例

下列示例关闭跟踪对名为 sbsp1 的 sbspace 的访问次数:

EXECUTE FUNCTION task("set sbspace accesstime off","sbsp1");

set sbspace avg_lo_size 参数:设置智能大对象的平均大小(SQL 管理 API)

随同 admin() 或 task() 函数,使用 set sbspace avg_lo_size 参数来指定在指定的 sbspace 中智能大对象的预期平均大小,以便数据库服务器可计算元数据区的大小。

语法

元素描述关键考虑
sbspacesbspace 的名称。
average_size该 sbspace 中智能大对象的平均大小,以 KB 为单位。UNIX™:2 至 2**31

用法

这个函数等同于 onspaces -ch 命令。

示例

下列示例设置名为 sbsp1 的 sbspace 中智能大对象的预期平均大小为 8 KB:

EXECUTE FUNCTION task("set sbspace avg_lo_size","sbsp1","8");

set sbspace logging 参数:更改 sbspace 的日志记录(SQL 管理 API)

随同 admin() 或 task() 函数,使用 set sbspace logging 参数来指定是否将数据库服务器日志更改到 sbspace 的用户数据区域。

语法

元素描述关键考虑
sbspacesbspace 的名称。

用法

使用 set sbspace logging on 参数来将日志更改到 sbspace 的用户数据区域。

使用 set sbspace logging off 参数不将日志更改到 sbspace 的用户数据区域。

这个函数等同于 onspaces -ch 命令。

示例

下列示例为名为 sbsp1 的 sbspace 启动 sbspace 日志记录:

EXECUTE FUNCTION task("set sbspace logging on","sbsp1");

set sql tracing 参数:设置全局 SQL 跟踪(SQL 管理 API)

随同 admin() 或 task() 函数,使用 set sql tracing 参数来设置全局 SQL 跟踪。

语法

元素描述关键考虑
level跟踪级别。缺省为 low可能的值为:
● low
● med
● high
mode跟踪所有用户还是选中的用户。可能的值为:
● global
● user
number_traces要跟踪的 SQL 语句的数目。缺省值为 1000。
trace_size跟踪缓冲区大小的 KB 数。如果超过这个缓冲区大小,则数据库服务器丢弃保存的数据。缺省大小为 2 KB。

用法

使用这个函数来重置 SQLTRACE 配置参数的值。

请使用 set sql tracing info 参数来显示全局 SQL 跟踪的状态。

请使用 set sql tracing off 参数来关闭全局 SQL 跟踪。

请使用 set sql tracing on 参数来开启全局 SQL 跟踪。您可选择地指定跟踪级别和模式,或更改跟踪缓冲区的大小。

  • 使用 low 参数来捕获语句统计、语句文本和语句迭代器。
  • 使用 med 参数来捕获包括在低级跟踪的所有信息,加上表名、数据库名和存储过程堆栈。
  • 使用 high 参数来捕获包括在中级跟踪的所有信息,加上主机变量。
  • 使用 global 参数来启用对所有用户的跟踪。
  • 使用 user 参数来启用跟踪那些由 set sql tracing user 参数启用跟踪的用户。

当暂停 SQL 跟踪时,使用 set sql tracing resume 参数来重启 SQL 跟踪。

使用 set sql tracing suspend 参数来暂停 SQL 跟踪,而不重新分配任何资源。

示例

下列示例对 1500 SQL 语句启动高级别全局跟踪到 4 KB 跟踪缓冲区内:

EXECUTE FUNCTION task("set sql tracing on","1500","4","high","global");

下列示例暂停 SQL 跟踪:

EXECUTE FUNCTION task("set sql tracing suspend");

set sql tracing database 参数:更改数据库跟踪(SQL 管理 API)

随同 admin() 或 task() 函数,使用 set sql tracing database 参数来启动或停止对数据库的跟踪,或罗列哪些数据库正被跟踪。

语法

元素描述关键考虑
database_name数据库名。指定一个数据库名。

用法

使用 set sql tracing database add 参数来指定对一个或多个数据库的跟踪,而不是跟踪所有数据库。缺省为所有数据库。在单个 admin() 或 task() 函数中指定至多六个参数。数据库名的最大数目可设置为 16。

使用 set sql tracing database clear 参数来从正被跟踪的数据库列表清除所有数据库。跟踪返回到缺省的全部数据库。

使用 set sql tracing database list 参数来罗列正被跟踪的数据库。

使用 set sql tracing database remove 参数来从正被跟踪的数据库列表移除单个数据库。

当您使用 set sql tracing database 参数时,仅可指定一个数据库的名称。在您可有最多 16 个数据库名时,必须在分别的函数调用中指定每一附加的数据库。您每次调用该函数时,该函数添加另一数据库到列表,直到列表包含 16 个数据库。

示例

下列示例设置对名为 db1、db2 和 db3的三个数据库设置 SQL 跟踪:

EXECUTE FUNCTION task("set sql tracing database add","db1");
EXECUTE FUNCTION task("set sql tracing database add","db2");
EXECUTE FUNCTION task("set sql tracing database add","db3");

set sql tracing session 参数:控制对会话的跟踪(SQL 管理 API)

随同 admin() 或 task() 函数,使用 set sql tracing session 参数来更改对当前会话的 SQL 跟踪。

语法

元素描述关键考虑
current_session_id当前会话的 ID。这是缺省会话 ID。
session_id这个命令应用的会话的 ID。

用法

使用 clear 参数来清除任何全局跟踪覆盖。该会话将符合全局跟踪策略。

使用 off 参数来关闭对该会话的跟踪,即使设置全局跟踪策略为启用跟踪。

使用 on 参数来开启对该会话的跟踪,即使设置全局跟踪策略为禁用跟踪。

示例

下列示例停止对当前会话的跟踪:

EXECUTE FUNCTION task("set sql tracing session","off");

set sql tracing user 参数:控制对用户的跟踪(SQL 管理 API)

随同 admin() 或 task() 函数,使用 set sql tracing user 参数来更改对用户的 SQL 跟踪。

语法

元素描述关键考虑
user_name用户名。

用法

使用 set sql tracing user add 参数来指定对特定用户的跟踪。

使用 set sql tracing user clear 参数来从跟踪列表移除所有用户。

使用 set sql tracing user list 参数来罗列正被跟踪的用户。

使用 set sql tracing user remove 参数来从正被跟踪的用户列表移除单个用户。

示例

下列示例对名为 fred 的用户停止跟踪 SQL 语句:

EXECUTE FUNCTION task("set sql tracing user remove","fred");

set sql user tracing 参数:设置对用户会话的全局 SQL 跟踪(SQL 管理 API)

随同 admin() 或 task() 函数,使用 set sql user tracing 参数来对指定的用户会话设置全局 SQL 跟踪的模式。

语法

元素描述关键考虑
session_id会话的 ID。

用法

使用 set sql user tracing clear 来对指定的用户会话清除用户跟踪标志,以便其遵守全局跟踪策略。

使用 set sql user tracing off 来禁用对用户会话的 SQL 跟踪,即使全局模式为 ON。

使用 set sql user tracing on 来启用对用户会话的用户 SQL 跟踪。即使全局跟踪模式为 OFF,也跟踪这个用户会话的 SQL 语句。

示例

下列示例启动 对 ID 18 会话的跟踪:

EXECUTE FUNCTION task("set sql user tracing on","18");

start json listener 参数:启动有线监听器

随同 admin() 或 task() 函数,使用 start json listener 参数来启动有线监听器。

语法

元素描述关键考虑
property_file要使用的资产文件名,而不是缺省的。property_file 是可选的。缺省资产文件在 $GBASEDBTDIR/etc/jsonListener.properties 中。
listener_arguments传递给有线监听器的命令行参数。

用法

start json listener 参数启动有线监听器。

示例

在这个示例中,通过使用 mycustom.properties 文件启动有线监听器,而不使用缺省 jsonListener.properties 文件:

EXECUTE FUNCTION task("start json listener", "mycustom.properties");

在这个示例中,通过使用 mycustom.properties 文件启动有线监听器,而不使用缺省 jsonListener.properties,并传递给有线监听器命令行参数:

EXECUTE FUNCTION task("start json listener", "mycustom.properties","-port 27018 -loglevel debug");

start listen 参数:动态地启动监听线程(SQL 管理 API)

随同 admin() 或 task() 函数,使用 start listen 参数来为 SOCTCP 或 TLITCP 网络协议启动现有的监听线程,而不中断现有的连接。

语法

元素描述关键考虑
server_name你想要为其启动监听线程的那个数据库服务器的名称。

用法

在该服务器的 sqlhosts 文件中必须存在监听线程的定义。如果在 sqlhosts 文件中不存在监听线程的定义,则您必须在可动态地启动监听线程之前添加它。

这个函数不更新 sqlhosts 文件。

这个函数等同于 onmode -P start server_name 命令。

示例

下列命令为名为 ids_serv2 的服务器启动新的监听线程:

EXECUTE FUNCTION task("start listen","ids_serv2");

start mirroring 参数:启动存储空间镜像(SQL 管理 API)

随同 admin() 或 task() 函数,使用 start mirroring 参数来启动对指定的 dbspace、blobspace 或 sbspace 的镜像。

语法

元素描述关键考虑
space_nameblobspace、dbspace 或 sbspace 的名称。

用法

这个函数等同于 onspaces -m 命令。

示例

下列示例启动对名为 dbsp1 的 dbspace 的镜像:

EXECUTE FUNCTION task("start mirroring","dbsp1");

stop json listener 参数:停止有线监听器

随同 admin() 或 task() 函数,使用 stop json listener 参数来停止有线监听器。

语法

元素描述关键考虑
property_file要使用的资产文件名,不是缺省的。property_file 是可选的。缺省资产文件在 $GBASEDBTDIR/etc/jsonListener.properties 中。
listener_arguments要传递到有线监听器的命令行参数。

用法

stop json listener 参数停止有线监听器。

示例

在下列示例中,通过使用 mycustom.properties 文件停止有线监听器,而不通过缺省 jsonListener.properties 文件:

EXECUTE FUNCTION task("stop json listener", "mycustom.properties");

在这个示例中,通过使用 mycustom.properties 文件停止有线监听器,而不通过缺省 jsonListener.properties,且传递到有线监听器命令行参数:

EXECUTE FUNCTION task("stop json listener", "mycustom.properties", "-port 27018");

stop listen 参数:动态地停止监听线程(SQL 管理 API)

随同 admin() 或 task() 函数,使用 stop listen 参数来为 SOCTCP 或 TLITCP 网络协议停止现有的监听线程,而不中断现有的连接。

语法

元素描述关键考虑
server_name你想要为其停止监听线程的那个数据库服务器的名称。

用法

在 sqlhosts 文件中必须存在监听线程的定义。

这个函数不更新 sqlhosts 文件。

这个函数等同于 onmode -P stop server_name 命令。

示例

下列命令为名为 ids_serv3 的服务器停止监听线程:

EXECUTE FUNCTION task("stop listen","ids_serv3");

stop mirroring 参数:停止存储空间镜像(SQL 管理 API)

随同 admin() 或 task() 函数,使用 stop mirroring 参数来为指定的 dbspace、blobspace 或 sbspace 停止镜像。

语法

元素描述关键考虑
space_nameblobspace、dbspace 或 sbspace 的名称。

用法

这个函数等同于 onspaces -r 命令。

示例

下列示例停止对名为 dbsp1 的 dbspace 的镜像:

EXECUTE FUNCTION task("stop mirroring","dbsp1");

storagepool add 参数:添加存储池条目(SQL 管理 API)

随同 admin() 或 task() 函数,使用 storagepool add 参数来添加条目到存储池( GBase 8s 可用于自动地添加空间到现有存储空间的裸设备、熟文件或目录的集合)。

语法

元素描述关键考虑
path_name当需要附加的存储空间时,服务器可使用的文件、目录或设备的路径。您无需添加结尾斜杠(“/”)到目录名。
当运行 oninit 命令时,如果在您的环境中有环境变量,则您可使用该路径中的环境变量。
begin_offset设备内 GBase 8s 可开始分配空间处的偏移量,以 KB 为单位。如果您指定了到目录的路径,则必须指定 0 为偏移量。
total_size在这个条目中 GBase 8s 可用的合计空间。服务器可从这个空间量分配多个 chunk。请确保为目录的合计大小指定 0。如果您为目录指定非零的值,则 SQL 管理 API 命令返回错误提示。
如果您为文件或设备指定 0,则服务器会从该条目分配一个可扩展的 chunk。
chunk_size从该设备、文件或目录可分配的 chunk 大小的最小值。您可创建的最小 chunk 为 1000 K。因此,您可指定的最小 chunk 大小为 1000 K。
请参阅 admin() 和 task() 参数大小规范
priority当服务器通过存储池查找空间时,该目录、文件或设备的优先级。
● 1 = 高优先级
● 2 = 中优先级
● 3 = 低优先级
在服务器从较低优先级条目分配空间之前,会试图从高优先级条目分配空间。

用法

如果有必要添加新的 chunk 到存储空间,则服务器使用存储池中的条目。

当您添加条目到存储池时,可能先要对如何使用那个条目施加控制。例如,减少实例中的 chunk 数,您可能仅想从特定裸设备分配大型空间 chunk,且可能不想这些 chunk 是可扩展的。 在这种情况下,请配置那个存储池的 chunk 大小为大型的。

您可以添加下列类型的条目到存储池:

  • 定长裸设备
  • 定长熟文件
  • 可扩展的裸设备(为了扩展 chunk 的大小)
  • 可扩展的熟文件(为了扩展 chunk 的大小)
  • 目录

目录存储池条目通常归类为可扩展的,因为它没有合计大小。如果在该目录中自动地创建新的 chunk,则服务器标记那些 chunk 为可扩展的。当您添加目录存储池条目时,您可能想要小的 chunk 大小,因为服务器可扩展该目录中的任何 chunk,且较少的 chunk 大小可减少实例中浪费的空间量。

如果存储池条目在“高可用性数据复制”(HAC)主服务器上,则在该 HAC 集群中的所有辅助服务器上,该条目中相同的路径必须是可用的。

大小和偏移量的缺省单位为 KB。然而,在您可以下列示例中显示的任何方式指定信息:

  • "100000"
  • "100000 K"
  • "100 MB"
  • "100 GB"
  • "100 TB"

示例:为目录添加存储池条目

下列命令添加名为 /region2/dbspaces 的目录,起始偏移量为 0,合计大小为 0,初始 chunk 大小为 20 MB,且为高优先级:

DATABASE sysadmin;
EXECUTE FUNCTION task("storagepool add", "/region2/dbspaces", "0", "0","20000", "1");

示例:为定长裸设备添加存储池条目

下列命令将路径名为 /dev/raw/device1 且合计 500 MB 空间的定长裸设备添加到存储池。该命令指定起始偏移量为 50 MB,合计大小为 10 GB,最小分配到 chunk 100 MB,且为低优先级.

EXECUTE FUNCTION task("storagepool add", "/dev/rawdevice1", "50 MB", "10 GB", "100 MB", "3");

示例:为定长熟文件添加存储池条目

下列命令添加定长熟文件和 1 GB 空间到存储池。该命令指定起始偏移量为 0, 合计大小为 1000000 KB,最小分配到 chunk 50000 KB,且为中优先级:

EXECUTE FUNCTION task("storagepool add", "/ifmx_filesystem/storage/cooked7","0", "1000000", "50000", "2");

当添加这个条目时,服务器试图将 cooked7 文件的大小增加到 1 GB。如果由于文件系统已满,服务器不能增加大小,则服务器返回错误消息且不添加条目到存储池。

GBase 8s 最初使用熟文件的一部分,但随着空间填满,如有必要可使用更多设备。

示例:为可扩展的熟文件添加存储池条目

下列命令添加路径名为 /ifmx/CHUNKFILES/cooked2 的熟文件。如果服务器使用这个条目,则服务器创建一个初始大小为 1 GB 的 chunk,且服务器自动地标记该 chunk 为可扩展的。

EXECUTE FUNCTION task("storagepool add", "/ifmx/CHUNKFILES/cooked2","0", "0", "1 GB", "2");

示例:用路径中的环境变量添加存储池条目

下列示例包括路径中的环境变量。当运行 oninit 命令时,该变量出现在服务器环境中。

EXECUTE FUNCTION task("storagepool add", "$DBSDIR/chunk1","0", "100000", "20000", "2");

storagepool delete 参数:删除一个存储池条目(SQL 管理 API)

随同 admin() 或 task() 函数,使用 storagepool delete 参数来从存储池删除条目。

语法

元素描述关键考虑
entry_id存储池条目的 ID。sysadmin 数据库中的 storagepool 表包含一个显示存储池中每一条目 ID 的列。

用法

当扩充存储空间时,如果您不想服务器继续使用该条目,则删除存储池条目。

要删除所有存储池条目、有状态为 Full 的存储池条目,或有状态为 Error 的存储池条目,请使用 SQL 管理 API storagepool purge 命令。(sysadmin 数据库中的 storagepool 表中包含显示存储池中每一条目状态的列。)

示例

下列命令删除条目 ID 为 13 的存储池条目:

EXECUTE FUNCTION task("storagepool delete", "13");

storagepool modify 参数:更改存储池条目(SQL 管理 API)

随同 admin() 或 task() 函数,使用 storagepool modify 参数来更改当需要附加的存储空间时 GBase 8s 可使用的目录、熟文件或裸设备的条目。

语法

元素描述关键考虑
entry_id存储池条目的 ID。sysadmin 数据库中的 storagepool 表包含显示存储池中每一条目 ID 的列。
new_total_size在这个条目中 GBase 8s 可用的合计空间的新数量。服务器可从这个空间量分配多个 chunk。请确保指定目录的合计大小为 0。如果您为目录指定非零的值,则 SQL 管理 API 命令返回错误提示。
如果您为文件或设备指定 0,则服务器从该条目分配一个可扩展的 chunk。
new_chunk_size可从设备、文件或目录分配的 chunk 大小的最小值。您可创建的最小 chunk 为 1000 K。因此,您可指定的最小 chunk 大小为 1000 K。
请参阅 admin() 和 task() 参数大小规范
new_priority当服务器通过存储池查找空间时,目录、文件或设备的优先级。
● 1 = 高优先级
● 2 = 中优先级
● 3 = 低优先级
在服务器从较低优先级条目分配空间之前,它试图从高优先级条目分配空间。

用法

有时您可能想要更改存储池条目。例如,当存储池空间用尽时,您可能想要增加存储池的合计大小,或您可能想要更改 chunk 大小或优先级。即使您不想更改所有值,当您更改条目时,也包括合计大小、chunk 大小和优先级。

您不可更改存储池条目的路径或起始偏移量。如果您想要更改那些值中的任何一个,则必须删除该存储池条目并以新的路径或起始偏移量添加条目。

如果存储池条目在“高可用性数据复制”(HAC)主服务器上,则在 HAC 集群中所有辅助服务器上的该条目中相同的路径必须可用。

存储池大小和偏移量的缺省单位为 KB。然而,您可以下列示例中显示的任何方式指定信息:

  • "100000"
  • "100000 K"
  • "100 MB"
  • "100 GB"
  • "100 TB"

示例

下列命令将条目 ID 为 4 的存储池条目的合计大小、chunk 大小和优先级更改为 10 GB、10 MB 和中优先级。

EXECUTE FUNCTION task("storagepool modify", "4", "10 GB", "10000", "2");

假定您添加条目到存储池,且条目路径为(/dev/IDS/chunk2),偏移量为 0,合计大小为 100 MB,最小 chunk 大小为 100 MB,优先级为 2。 在 GBase 8s 从这个条目分配任何空间之前,请您使用 onspaces 来手工地添加带有相同路径(/dev/IDS/chunk2)的 50 MB chunk,偏移量为 50 MB。当服务器尝试使用这个条目来自动地创建 chunk 时,服务器仅检测重叠。那时,服务器标记该条目为“Error”状态并尝试使用另一个条目来创建 chunk。

您可通过更改存储池条目的合计大小来修正该问题(例如,对于条目 2),更改为 50 MB 且通过更改该条目的最小 chunk 大小为 50 MB,如下:

EXECUTE FUNCTION task("storagepool modify", "2", "50 MB", "50 MB", "2");

storagepool purge 参数:删除存储池条目(SQL 管理 API)

随同 admin() 或 task() 函数,使用 storagepool purge 参数来删除所有存储池条目、有 Full 状态的存储池条目,或有 Error 状态的存储池条目。

语法

用法

使用 storagepool purge all 参数来删除存储池中的所有条目。

使用 storagepool purge full 参数来删除所有状态为 Full 的存储池条目。

使用 storagepool purge errors 参数来删除所有状态为 Error 的存储池条目。

sysadmin 数据库中的 storagepool 表包含显示存储池中每一条目的状态的列。

示例

下列命令删除所有状态为 Full 的存储池条目:

EXECUTE FUNCTION task("storagepool purge full");

表和分片压缩和解压缩操作(SQL 管理 API)

您可用 SQL 管理 API admin() 或 task() 函数和参数压缩和解压缩表中或表分片中的数据。压缩操作仅适用于数据行的内容和那些出现在逻辑日志记录中的数据行的映像。

在每一 GBase 8s 实例的 sysadmin 数据库中,定义内建 SQL 管理 API admin() 或 task() 函数。缺省情况下,仅用户 gbasedbt 可调用这些函数。如果将 sysadmin 数据库上的 Connect 权限授予用户 root 或 DBSA 组成员,则当他们直接地或远程地连接到 sysadmin 数据库时,他们也可调用 SQL 管理 API admin() 或 task() 函数。

您可在表和表分片中用于压缩和解压缩操作的 SQL 管理 API admin() 或 task() 命令参数为:

table 压缩参数

对于指定表的所有分片执行不同的操作。要了解更多信息,请参阅 table 或 fragment 参数:压缩数据和优化存储(SQL 管理 API)。

fragment 压缩参数

对于属于特定表的单个分片或指定的分片集合执行不同的压缩操作。要了解更多信息,请参阅 table 或 fragment 参数:压缩数据和优化存储(SQL 管理 API)。

compression purge_dictionary

删除所有不活动的压缩字典或在您指定日期之前创建的所有不活动的压缩字典。要了解更多信息,请参阅 清除压缩字典参数:移除压缩字典(SQL 管理 API)。

表和分片压缩操作包括创建压缩字典、估计压缩率、压缩表和表分片中的数据、合并空闲空间(重新打包)、归还空闲空间到 dbspace(收缩)、解压缩数据以及删除个别的表和分片压缩字典。

当您运行 SQL 管理 API 压缩和解压缩命令时,压缩和解压缩 dbspace 中的行数据和简单大对象。您还可指定是否仅压缩或解压缩行数据,或仅压缩或解压缩 dbspace 中的简单大对象。

admin() 命令返回一个整数;task() 命令返回一个字符串。

table 或 fragment 参数:压缩数据和优化存储(SQL 管理 API)

使用带有 table 或 fragment 参数的 SQL 管理 API 函数来创建压缩字典、来估计压缩率、来压缩表和表分片中的数据、来合并空闲空间(重新打包)、 来归还空闲空间到 dbspace(收缩)、来解压缩数据,以及来删除压缩字典。

当您运行 SQL 管理 API 压缩和解压缩命令时,您压缩或解压缩 dbspace 中的行数据和简单大对象。您还可指定是否仅压缩或解压缩行数据,或仅压缩或解压缩 dbspace 中的简单大对象。

语法:表数据压缩命令参数:

语法:分片数据压缩命令参数

表和分片命令参数

命令参数

下表描述每一参数。

表. 压缩和解压缩操作的参数

参数描述
blobs指定您仅想要压缩或解压缩 dbspace 中的简单大对象,而不是行数据。
compress就地压缩所有现有的行,而不移动它们(不重新打包表)。
这个选项自动地压缩 dbspace 中的行数据和简单大对象。要仅压缩行数据或仅压缩 dbspace 中的简单大对象,还要使用 rows 或 blobs 元素。
如果目标表或分片的压缩字典不存在,则压缩操作还创建该字典。
create_dictionary构建压缩字典。压缩字典是频繁地发生的模式和符号库,在压缩的行中取代它们。
创建字典之后,如果新插入的或更新的行可以压缩,则会压缩它们。
estimate_compression估计新的压缩率和当前的压缩率。如果该表未压缩,则当前压缩率为 0.0%。
parallel并行地运行压缩、重新打包、update_ipa 或解压缩操作。为每个表的分片或分片列表启动一个线程,跨那些分片并行地运行该操作。
purge_dictionary在您解压缩表或分片之后,删除不活动的压缩字典。
repack通过将数据移至分片或表的前部合并空闲空间。
在分片处于 online 时,因为重新打包操作移动行,所以访问正在使用隔离级别低于 Repeatable Read 的分片的其他查询可能偶尔地找到同一行两次或找不到行。要避免这种可能性,请为并发查询使用 Repeatable Read 隔离级别;或者,不使用 repack 参数,而使用 repack_offline 参数。
repack_offline在表或分片上持有排他锁时,通过将数据移至表或分片的前部,合并空闲空间。这个操作阻止所有其他对数据的访问,直到该操作完成。
rows指定您仅想要压缩或解压缩行数据,而不是 dbspace 中的简单大对象。
shrink将分片或表后部的空闲空间归还到 dbspace,从而减少该分片或表的合计大小。
uncompress停止对新的 INSERT 和 UPDATE 操作压缩,解压缩所有压缩的行,并停用压缩字典。这个操作还为分片分配新的页,并将那些在原始页上不再适合的解压缩的行移至新页。
在分片处于 online 时,因为这个操作移动行,所以正在访问使用低于 Repeatable Read 隔离级别的分片的其他操作可能偶尔地找到同一行两次或找不到行。为了避免这种可能性,请为并发查询使用 Repeatable 隔离级别,或不使用 uncompress 参数,而使用 uncompress_offline 参数。
这个选项自动地解压缩 dbspace 中的行数据和简单大对象。要仅压缩行数据或仅压缩 dbspace 中的简单大对象,还请使用 rows 或 blobs 元素。
uncompress_offline在持有分片上的排他锁时,停止对新的 INSERT 和 UPDATE 操作压缩,解压缩所有压缩的行,并停用压缩字典。这样阻止对分片数据的所有其他访问,直到该操作完成。
这个操作还为分片分配新的页,并将那些在其原始页上不再适合的解压缩的行移至新的页。
update_ipa为指定的表或分片移除未完成的就地更改操作。

命令元素

下表显示您可在命令中使用的元素。

表. 表压缩和存储优化命令元素

元素描述关键考虑
database_name包含指定的表的数据库名。可选的。
如果您未指定 database,则 GBase 8s 使用当前数据库。
如果您输入数据库名,则必须使用与系统目录表中相同的大写或小写字母。
owner包含指定的表的数据库所有者的授权标识符。可选的。
如果您未指定 owner,则 GBase 8s 使用当前的所有者。
如果您输入所有者名,则必须使用与系统目录表中相同的大写或小写字母。
table_name包含数据的表名。您必须使用与系统目录表中相同的大写或小写字母。

表. 分片压缩和存储优化命令元素

元素描述关键考虑
partition_number属于同一表的用空格分隔的分区号列表。

用法

GBase 8s 使用压缩字典来压缩数据。

您在表或分片上运行 compress 命令之后, GBase 8s 自动地压缩您添加到表或分片的任何新行。当您运行 compress 时,如果表或分片包含的行数多于 2000,则构建压缩字典且压缩所有行。当您运行压缩命令时,如果表或分片包含的行数少于 2000,则启用该表或分片的自动压缩。插入 2000 行之后,创建压缩字典并压缩初始 2000 行之后的所有行。要压缩初始的 2000 行,请再次运行 compress 命令。

如果您显著地更改数据,则压缩字典可能无效。在这种情况下,请解压缩然后再压缩。

您可取消带有 compress 或 uncompress 参数的命令,例如,在 DB-Access 中键入 CTRL-C。在前一个中断的命令之后,您可重新发出带有 repack、 repack_offline、uncompress 和 uncompress_offline 参数的命令。

在表或分片上已发生了 compress、repack、repack_offline、shrink、uncompress 或 uncompress_offline 操作的任何一个时,您不可在表或分片上执行这些操作。

当您在单个命令中指定多个操作时,服务器按如下顺序执行这些操作:

  • create_dictionary
  • compress
  • repack
  • shrink

compress、repack、repack_offline、uncompress 和 uncompress_offline 操作可消耗大量日志文件。如果包括但不限于这些压缩操作,您预期运行的任何工作负载消耗日志文件快于每 30 秒一个,则请将日志配置大些。

日志记录 compress、repack 和 uncompress 操作,但运行在小部分中。

在执行压缩操作之后,如果您更改分片策略,则表失去其压缩状态,并将需要重新压缩。

在您完成repack_offline 或 uncompress_offline 操作之前删除或禁用索引,可减少数据库完成该操作所花费的时间量。随后,您可重新创建或重新启用这些索引,最好利用 PDQ。删除或禁用索引,然后再创建或启用它们,与不这么做比起来,可更快地完成 repack_offline 或 uncompress_offline 操作。

如果 dbspace 曾包含压缩的表,请别删除正在使用“更改数据捕获”(CDC)的 dbspace,因为这可能删除 CDC 仍需要的压缩字典。

重新打包

压缩操作通常在个别数据和剩余页上创建一些空闲空间,但该空间不合并在表或分片的后部。相反,该空间可用于保持新插入的行,表不再增大直到这个空间填满。

仅发生在 online 的压缩操作就地压缩表的行。重新打包操作移动这些行。您可 online 或 offline 执行重新打包操作。online 操作允许在表上发生并发活动。 然而,这可导致 phantom rows。(幻象行是在后来回滚的事务期间初始地更改或插入的那些行。)

要避免幻象行,当您可经得起使得其他用户不能访问表或分片时,您可能想要重新打包 offline。例如,您可以在日间执行带有并发活动的压缩操作,然后当预计表上没有并发活动时,在晚间执行 repack_offline 操作。

您不可执行带有 online 操作的 offline 操作。例如,在您可执行压缩与重新打包相结合的操作时,您不可执行压缩与 repack_offline 相结合的操作。如果您想要重新打包 offline,则必须分两步做到:

  1. 执行压缩操作。
  2. 执行 repack_offline 操作。

类似地,您不可执行 repack_offline 与收缩操作。

在发生重新打包操作时,如果在表中发生轻量级追加(无缓冲区的、无日志记录的插入操作),则重新打包操作不在表或分片的后部完成空间合并。重新打包操作未完成是因为新的 extent 添加在重新打包操作已经发生的位置中,所以不能将空间归还到 dbspace。要完成重新打包进程,您必须在轻量级追加活动完成后运行第二次重新打包操作。这个第二次重新打包操作构建在第一次重新打包操作的成果之上。

收缩

通常在重新打包操作之后执行收缩操作。

不损害表的分配策略妥协,您可稳妥地收缩整个表。例如,如果您有一分片的表,一周的每天一个分片,并为未来使用而预先分配了许多分片,则您可收缩该表,而不损害这个分配策略。如果该表为空,则 GBase 8s 将表收缩到当该表创建时指定的初始 extent 大小。

当您初始化收缩操作时, GBase 8s 缩短 extent,如下:

  • 除第一个 extent 之外,将所有 extent 缩短到尽可能小的大小。
  • 如果该表完全在第一个 extent 之中(例如,因为该表是空表),则 GBase 8s 不将第一个 extent 收缩到比 extent 大小更小的大小。当以 CREATE TABLE 语句创建该表时指定了这个 extent 大小。

您可使用 ALTER TABLE 语句的 MODIFY EXTENT SIZE 子句来减小当前 extent 大小。您这么做之后,可重新运行收缩操作来将第一个 extent 收缩到新的 extent 大小。

解压缩

对任何未压缩的表或表的分片,解压缩操作无效。

解压缩表或分片之后,您可执行 purge_dictionary 操作来删除那个表或分片的字典。

清除

对表和分片执行 purge_dictionary 操作之前,您必须:

  • 解压缩表和分片。

当您解压缩表或分片时, GBase 8s 将该表或分片的字典标记为不活动的。

  • 请确保 Enterprise Replication 函数不需要较早日志的压缩字典。
  • 请归档包含带有压缩字典的表或分片的任何 dbspace,即使您已经解压缩了表或分片中的数据且字典不在是活动的。

您还可删除所有压缩字典或在指定日期之前以及那天创建的所有压缩字典。

示例

下列命令压缩、重新打包和收缩 insurance 数据库中名为 auto 的表中 dbspace 中的行数据和简单大对象。该数据库所有者为 tjones。

EXECUTE FUNCTION task("table compress repack shrink","auto", "insurance","tjones");

下列命令仅并行地压缩名为 dental 的表中的行数据。

EXECUTE FUNCTION task("table compress rows parallel","dental");

下列命令解压缩分区号为 14680071 的分片。

EXECUTE FUNCTION task("fragment uncompress","14680071");

下列命令仅并行地解压缩分区号为 14680071 的分片中的行数据。

EXECUTE FUNCTION task("fragment uncompress rows parallel","14680071");

下列命令估计 insurance 数据库中名为 home 的 表的压缩收益,该数据库的所有者为 fgomez。

EXECUTE FUNCTION task("table estimate_compression","home", "insurance","fgomez");

下列命令并行地移除名为 auto 的表上挂起的就地更改操作。

EXECUTE FUNCTION task("table update_ipa parallel","auto");

在您运行该命令之后,数据库服务器显示您可取得的压缩率,以及当前取得的压缩率( 如果存在的话)。

估计压缩操作的输出(SQL 管理 API)

在您运行估计压缩率的命令之后,数据库服务器显示信息,显示可取得的压缩率的估计,以及当前取得的压缩率(如果存在的话)。

表. estimate_compression 命令显示的信息

显示的信息
est这是对使用新的压缩字典可取得的压缩率的估计。该估计是与不压缩对比而节省的空间的百分率。
curr这是对当前取得的压缩率的估计。这个估计是与不压缩对比而节省的空间的百分率。对未压缩的分片或表,通常会出现 0.0%。
change通过切换到新的压缩字典您可取得的压缩率中,这是赢得的百分点(或可能损失的百分点,虽然应该很罕见)。这就是 est 与 curr 之间 的差异。
如果表或分片未压缩,则您可用该压缩参数创建压缩字典。如果压缩分片,则在可压缩之前,您必须执行解压缩或 uncompress_offline 操作。
partnum这是分片的分区号。
coloff这个值定义这是对行数据的估计,还是对 dbspace 中的简单大对象的估计,如下:
● -1 表明是对行数据的估计
● 正数值表明是对分区简单大对象的估计,由该值标识简单大对象的偏移量。该偏移量是表中的列偏移量,以字节为单位。
table这是该分片所属的表的全名,格式为 database:owner.tablename 如果您正在估计对索引的压缩收益,则在这列中出现索引的全名。

示例

下列输出显示如果您重新压缩第一个分片,则可发生节省空间增加 4%。如果压缩未压缩的第二个分片,则可发生 75.7% 增长。 coloff 列中的值 -1 表明压缩的是行数据。

est      curr   change  partnum      coloff  table
-----------------------------------------------------------------------------------
75.7% 75.3% +0.4 0x00200003 -1 insurance:bwilson.auto
75.7% 0.0% +75.7 0x00300002 -1 insurance:pchang.home

下列输出显示对行数据(在第一行中)的压缩估计,和对在偏移量 4 和 60 的简单大对象(在第二和第三行中)的压缩估计。:

 est     curr   change   partnum       coloff    table
-----------------------------------------------------------------------------------
75.4% 71.5% +3.9 0x00200002 -1 test:mah.table1
5.0% 75.0% +0.0 0x00200002 4 test:mah.table1
75.0% 75.0% +0.0 0x00200002 60 test:mah.table1

对表与分片的压缩估计的输出看上去一样,除了表的数据通常显示表中的所有分片,而分片的输出仅显示指定分片的信息。

清除压缩字典参数:移除压缩字典(SQL 管理 API)

调用带有 compression purge_dictionary 初始命令的 admin() 或 task() 函数来删除所有不活动的压缩字典,或删除在指定的日期之前为压缩的表或分片创建的所有不活动的压缩字典。在您删除为该表和分区创建的任何压缩字典之前,必须解压缩表和分片。

语法:

用法

在对表和分片执行 purge_dictionary 操作之前,您必须:

  • 解压缩表和分片。

当您解压缩表或分片时, GBase 8s 标记该表或分片的字典为不活动的。

  • 请确保 Enterprise Replication 函数不需要该压缩字典。
  • 归档包含带有压缩字典的表或分片的任何 dbspace,即使您已经解压缩该表或分片中的数据,且该字典不再是活动的。

compression purge_dictionary 命令删除所有压缩字典。

带有日期作为第二个参数的 compression purge_dictionary 命令删除在指定的日期之前以及那一天创建的所有压缩字典。您可根据您的语言环境和环境使用可转换到 DATE 日期格式的任何格式的日期。例如,您可指定 03/29/2009、03/29/09 或 Mar 29, 2009。

您还可通过调用以 table 或 fragment 为初始命令,且以 purge_dictionary 为下一个参数的 admin() 或 task() 命令,删除特定的压缩字典。

您不可删除为索引创建的压缩字典。当删除这些索引时,数据库服务器移除这些压缩字典。

下列命令告诉 GBase 8s 移除在 2009 年 7 月 8 日之前和那一天创建的所有字典:

EXECUTE FUNCTION task("compression purge_dictionary", "07/08/2009");

下列命令告诉 GBase 8s 移除 insurance 数据库中名为 auto 的表的不活动字典,该数据库的所有者为 tjones。

EXECUTE FUNCTION task("table purge_dictionary", "auto", "insurance", "tjones");

tenant create 参数:创建 tenant 数据库(SQL 管理 API)

随同 admin() 或 task() 函数,使用 tenant create 参数来创建 tenant 数据库。

语法

元素描述关键考虑
database_nametenant 数据库名。在数据库服务器的数据库名中必须是唯一的。该数据库标记为 tenant 数据库。
dbspacedbspace 的名称。罗列要在其中存储永久用户数据的一个或多个 dbspace。用逗号分隔 dbspace 名。每一 dbspace 必须存在且为空。
tenant 数据库必须存储在一个或多个专用的 dbspace 中。仅在 tenant 数据库中创建的对象可存储在该专用的 dbspace 中。
blobspaceblobspace 的名称。如果 tenant 数据库会包含简单大对象,则罗列一个或多个 blobspace。用逗号分隔 blobspace 名称。每一 blobspace 必须存在且为空。
仅存储在 tenant 数据库表中的简单大对象可存储在该专用的 blobspace 中。
sbspacesbspace 的名称。如果 tenant 数据库会包含智能大对象,则罗列一个或多个 sbspace。用逗号分隔 sbspace。每一 sbspace 必须存在且为空。
智能大对象可包括 BLOB 或 CLOB 数据,以及那些过大以至于不适合在行中的表统计信息。 有些 GBase 8s 特性,诸如 Enterprise Replication 和基本文本搜索,需要 sbspace。
仅存储在 tenant 数据库表中的智能大对象可存储在专用的 sbspace 中。
vpclass虚拟处理器类的名称。在其中为 tenant 数据库运行会话线程的 tenant 虚拟处理器类。如果您省略这个属性,则在 CPU 虚拟处理器上运行会话线程。
vpclass_name 限定为 8 字符。最多可创建 200 个 tenant 虚拟处理器。
如果 vpclass_name 是唯一的,则您可创建新的 tenant 虚拟处理器类。如果存在 vpclass_name,则该 tenant 数据库与其他 tenant 数据库共享该类。
vps要运行的虚拟处理器数。如果您未包括 num=vps 属性,则启动一个虚拟处理器。
tempdbspace临时 dbspace 的名称。罗列要在其中存储临时用户数据的一个或多个临时 dbspace。用逗号分隔临时 dbspace 名称。如果省略这个属性,则临时表存储在由 DBSPACETEMP 配置参数或环境变量指定的临时 dbspace 中。
您可通过设置 DBSPACETEMP 环境变量取代会话的 dbspacetemp 属性。
tempsbspace临时 sbspace 的名称。罗列在其中存储临时智能大对象的一个或多个临时 sbspace。用逗号分隔临时 sbspace 名称。如果您省略这个属性,则临时智能大对象存储在由 SBSPACETEMP 配置参数指定的临时 sbspaces 中。
locks对于没有 DBA 权限的用户,会话的锁的最大数。locks 的值必须为 500 - 2147483647。如果您省略这个属性,则由 SESSION_LIMIT_LOCKS 配置参数设置锁的数目。如果 SESSION_LIMIT_LOCKS 配置参数未设置,则会话的锁的最大数目为 2147483647。
您可通过设置 IFX_SESSION_LIMIT_LOCKS 环境选项取代会话的 session_limit_locks 属性。
log_mode日志模式定义:
UNBUFFERED 无缓冲区的数据库日志记录。这是缺省值。
ANSI 符合 ANSI 的数据库日志记录。
BUFFERED 有缓冲区的数据库日志记录。
NONE 无数据库日志记录。
如果您省略这个属性,则日志记录模式为无缓冲区的。
case大小写定义:
INSENSITIVE 不区分大小写。这是缺省值。
SENSITIVE 区分大小写。
如果您省略这个属性,则数据库不缺分大小写。
locale数据库的语言环境。locale 的值与 DB_LOCALE 环境变量的值相同。
如果您省略这个属性。则由 DB_LOCALE 环境变量的值设置语言环境。缺省语言环境为 US English。
catalog_dbspace存储数据库目录的 dbspace 的名称。必须是由 dbspace 属性罗列的 dbspace 的名称。如果您省略这个属性,则 dbspace 属性列表中的第一个 dbspace 包含数据库目录。

用法

您必须拥有 DBA 权限或被授予 TENANT 权限来运行这个命令。

随同 admin() 或 task() 函数,运行 tenant create 参数来创建 tenant 数据库。创建该数据库的用户被授予 DBA 权限。您可在 sysadmin 数据库中的 tenant 中查看 tenant 数据库属性。

下列语句创建名为 companyA 的 tenant 数据库:

EXECUTE FUNCTION task('tenant create', 'companyA',
'{dbspace:"companyA_dbs1,companyA_dbs2,companyA_dbs3",
sbspace:"companyA_sbs",
vpclass:"tvp_A,num=6",
dbspacetemp:"companyA_tdbs",
session_limit_locks:"1000",
logmode:"ansi"}'
);

该 tenant 数据库有三个专用的 dbspace、一个专用的 sbspace、六个 tenant 虚拟处理器、一个专用的临时 dbspace,每一会话限定 1000 个锁,且 logmode 为 ANSI。该 tenant 数据库没有 blobspace,在由 SBSPACETEMP 配置参数指定的 sbspace 中存储临时智能大对象,且区分大小写。

tenant drop 参数:删除 tenant 数据库(SQL 管理 API)

随同 admin() 或 task() 函数,使用 tenant drop 参数来删除 tenant 数据库。

语法

元素描述关键考虑
database_nametenant 数据库的名称。必须是现有的 tenant 数据库。

用法

您必须拥有 DBA 权限或已被授予 TENANT 权限来运行这个命令。不可打开其他到该数据库的连接。

删除该数据库中的表和数据。释放 tenant 数据库专用的存储空间。从 sysadmin 数据库中的 tenant 表中移除数据库 tenant 属性。如果不与其他任何 tenant 数据库相关,则删除相关的 tenant 虚拟处理器类。

下列语句删除 companyA tenant 数据库:

EXECUTE FUNCTION task('tenant drop', 'companyA');

tenant update 参数:更改 tenant 数据库属性(SQL 管理 API)

随同 admin() 或 task() 函数,使用 tenant update 参数来更改 tenant 数据库的属性。

语法

元素描述关键考虑
database_nametenant 数据库的名称。必须是现有的 tenant 数据库。
dbspace_namedbspace 的名称。罗列在其中存储永久的用户数据的一个或多个 dbspace。用逗号分隔 dbspace 名称。每一 dbspace 必须存在且为空。
将指定的 dbspace 追加到 dbspace 属性的现有的 dbspace 列表。
blobspace_nameblobspace 的名称。罗列在其中存储简单大对象的一个或多个 blobspace。用逗号分隔 blobspace 名称。每一 blobspace 必须存在且为空。
如果 blobspace 属性有现有的值,则将指定的 blobspace 追加到现有的 blobspace 列表。
sbspace_namesbspace 的名称。罗列在其中存储智能大对象的一个或多个 sbspace。用逗号分隔 sbspace 名称。每一 sbspace 必须存在且为空。
如果 sbspace 属性有现有的值,则将指定的 sbspace 追加到现有的 sbspace 列表。
vpclass_name虚拟处理器类的名称。vpclass_name 限定为 8 个字符。最多可创建 200 个 tenant 虚拟处理器类。
如果 vpclass_name 是唯一的,则请您创建新的 tenant 虚拟处理器类。如果 vpclass_name 存在,则该 tenant 数据库与其他 tenant 数据库分享该类。
如果 vpclass 属性有现有的值,则请您为 tenant 数据库更改虚拟处理器类。
如果您未包括 num=vps 属性,则启动一个虚拟处理器。
tempdbspace_name临时 dbspace 的名称。罗列在其中存储临时用户数据的一个或多个临时 dbspace。用逗号分隔临时 dbspace 名称。
如果 dbspacetemp 属性有现有的值,则替换现有的值。
tempsbspace_name临时 sbspace 的名称。罗列在其中存储临时智能大对象的一个或多个临时 sbspace。用逗号分隔临时 sbspace 名称。
如果 sbspacetemp 属性有现有的值,则替换现有的值。
locks对于没有 DBA 权限的用户,会话的锁的最大数目。如果 session_limit_locks 属性有现有的值,则替换现有的值。
locks 的值必须为 500 - 2147483647。

用法

您必须拥有 DBA 权限或已被授予了 TENANT 权限来运行这个命令。

数据库属性的变更对新的会话生效。

下列语句更新名为 companyA 的 tenant 数据库的属性:

EXECUTE FUNCTION task('tenant update', 'companyA',
'{dbspace:"companyA_dbs4,companyA_dbs5",
sbspace:"companyA_sbs3",
vpclass:"tvp_B"}'
);

该 tenant 数据库获得两个 dbspace 和一个 sbspace。更改虚拟处理器类。